我的项目中有一个模型
using System;
namespace Argussite.SupplierServices.ViewModels
{
public class UsersPage
{
public Guid SupplierId { get; set; }
public string SupplierFullName { get; set; }
public bool ActionsAllowed { get; set; }
}
}
我在控制器中使用我的模型并设置属性
public ActionResult Index(Guid id)
{
var supplierOfUser = Context.Suppliers.AsNoTracking()
//.Include(e => e.Supplier)
.FirstOrDefault(e => e.Id == id);
string SupplierId = id.ToString();
string SupplierFullName = supplierOfUser.FullName.ToString();
bool ActionsAllowed = supplierOfUser.Active;
return View();
}
然后我需要在视图中使用它,但我不知道如何在视图中获取我的属性?
答案 0 :(得分:2)
首先,您的控制器操作需要将该模型实例发送到视图,如下所示:
return View(supplierOfUser);
您需要在视图的顶部显示:
@model Argussite.SupplierServices.ViewModels.UsersPage
然后,您需要做的就是在视图中使用模型:
@Model.SupplierFullName
如果要在视图中使用其他属性,可以将它们放入动态ViewBag变量中,如下所示:
ViewBag.supplierOfUser = supplierOfUser.FullName.ToString();
然后在您的视图中,您可以像这样使用此值:
@ViewBag.supplierOfUser
答案 1 :(得分:1)
很难用精确的代码帮助你,因为我不知道你想在你的视图上做什么,这是你应该如何在你的视图中传递和使用你的模型的一般概念
<强>控制器强>
public ActionResult Index(Guid id)
{
var supplierOfUser = Context.Suppliers.AsNoTracking()
.FirstOrDefault(e => e.Id == id);
var usersPage = new UsersPage
{
SupplierId = supplierOfUser.Id,
SupplierFullName = supplierOfUser.FullName,
ActionsAllowed = supplierOfUser.Active
}
return View(usersPage ); // <-- Send viewmodel to view
}
查看强>
// Declare model
@model Argussite.SupplierServices.ViewModels.UsersPage
...
//Use your model here at will
@Html.DisplayFor(modelItem => item.FullName)
...
@Html.EditorFor(model => model.FullName)
@Html.ValidationMessageFor(model => model.FullName)
答案 2 :(得分:1)
为了将控制器中的数据用于视图,您需要使用参数中的模型返回视图:
return View(supplierOfUser);
在您看来,您还需要定义模型:
@model YourModel
请注意,您无需将供应商信息设置为其他变量(仅需要supplierOfUser)。
答案 3 :(得分:1)
创建一个新的UsersPage
并将已有的属性分配给其属性,然后将新创建的UsersPage
传递给视图:
public ActionResult Index(Guid id)
{
var supplierOfUser = Context.Suppliers.AsNoTracking()
//.Include(e => e.Supplier)
.FirstOrDefault(e => e.Id == id);
var usersPage = new UsersPage();
usersPage.SupplierId = id.ToString();
usersPage.SupplierFullName = supplierOfUser.FullName.ToString();
usersPage.ActionsAllowed = supplierOfUser.Active;
return View(usersPage);
}
答案 4 :(得分:1)
最好的方法是在视图中建立强类型模型:
@model Argussite.SupplierServices.ViewModels.UsersPage
然后,只需引用模型上的属性,例如
@Html.EditorFor(model => model.SupplierFullName)