[英]How to to pass data from controller to view in ASP.NET MVC
我嘗試將數據從登錄視圖傳遞到 Empinput 視圖。 我嘗試使用 Http 會話不適用於數據傳遞。
我收到此錯誤:
“HttpSessionStateBase”不包含“SetString”的定義,並且無法找到接受“HttpSessionStateBase”類型的第一個參數的可訪問擴展方法“SetString”。
我把代碼放在下面請告訴我如何傳遞數據?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DemoEmployee.Models;
using System.Web.Security;
using System.Web.UI.WebControls;
using Microsoft.AspNetCore.Http;
public ActionResult Login(Models.Member model)
{
var userr = db.User.Where(x => x.UserName == model.UserName && x.Password == model.Password).FirstOrDefault();
name = model.UserName;
if (userr == null)
{
ModelState.AddModelError("", "Invalid username and password");
FormsAuthentication.SetAuthCookie(model.UserName, false);
}
else
{
// This is not working for passing data to another view
HttpContext.Session.SetString("Username", model.UserName.ToString());
return RedirectToAction("Empinput", "Empinput");
}
return View();
}
[HttpPost]
public ActionResult Empinput(Employee model)
{
Member member = new Member();
Login sdm = new Login();
// this is not working for passing data from Login view
String name = HttpContext.Session.GetString("Username");
}
這真的很容易。 您可以將數據傳遞給ViewBag
進行查看。
在您的控制器中:
ViewBag.[write a name for View Bag] = [Your Value]
它就像一個變量,但它是動態的。
在您的示例視圖中:
<td>@ViewBag.[Viewbag name]</td>
有不同的方法可以將值從控制器傳遞到視圖。
在您的控制器函數中,您可以初始化一個 TempData,然后在您的視圖中使用它。 但它只會在一個請求中保存該值。 例如, TempData["UserName"] = model.UserName;
然后在視圖中,您可以將值存儲到變量中然后顯示變量值,也可以直接顯示 tempData 值。 例如,
var UserName = TempData["UserName"] as string;
ViewData 的行為和操作也像 TempData
ViewData["UserName"] = model.UserName;
然后在視圖中使用它。
在控制器中,
ViewBag.UserName = model.UserName
在 View 中,您可以將其用作
@ViewBag.UserName
Session["UserName"] = model.UserName;
我希望這可以幫助你! 祝一切順利。
把它稱為方法兄弟。
public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
}
public class EmployeeController : Controller
{
public EmployeeController()
{
}
public async Task<IActionResult> Login()
{
var emp = new Employee()
{
ID = 1,
Name = "Vladimir Bacosa"
};
await EmpInput(emp);
return View();
}
[HttpPost]
public async Task<IActionResult> EmpInput(Employee emp)
{
Console.WriteLine(emp.Name);
return View();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.