我正在尝试将ASP.NET MVC功能(尤其是路由)添加到我现有的ASP.NET Web应用程序中。我添加了一个Controller和View(一个asp.net页面)。
现在我想知道如何在视图中显示我的自定义类(例如User)的对象的详细信息?我可以在ViewData集合中分配对象并在视图中呈现它吗?我已经有一个Datalayer(在ADO.NET中),它运行在当前的ASP.NET Web应用程序中,所以我想使用它。
我在我的控制器中尝试了这个
public ActionResult Index()
{
BusinessObject.User objUser = new BusinessObject.User();
objUser.EmailId = "shyju@company.com";
objUser.ProfileTitle = "Web developer with 6 yrs expereince";
ViewData["objUser"] = objUser;
ViewData["Message"] = "This is ASP.NET MVC!";
return View();
}
如何在视图页面中使用它来显示用户详细信息?
答案 0 :(得分:2)
您应该将对象作为视图模型(或视图模型的一部分,以及您的消息)传递给强类型视图。然后,您只需在视图中引用模型属性即可。
public class IndexViewModel
{
public BusinessObject.User User { get; set; }
public string Message { get; set; }
}
(或者,更好的是,只是您真正需要的用户对象的属性)
控制器
public ActionResult Index()
{
BusinessObject.User objUser = new BusinessObject.User();
objUser.EmailId = "shyju@company.com";
objUser.ProfileTitle = "Web developer with 6 yrs expereince";
return View( new IndexViewModel {
User = objUser,
Message = "This is ASP.NET MVC!";
});
}
查看
<%@ Page Title="" Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.MVC.ViewPage<MyWebSite.Models.IndexViewModel>" %>
<%= Html.Encode( Model.User.EmailId ) %>