我不明白,我有我的控制器:
[HttpGet]
public ActionResult Detail(int userId)
{
var user = ZincService.GetUserForId(userId);
if (user != null)
{
ViewBag.user = userId;
ViewBag.email = user.Email;
ViewBag.title = user.JobTitle;
ViewBag.node = user.Node;
}
return View(user);
}
然后我的观点,Detail.aspx
<div id="user-details-view">
<div>
Title:
</div>
<div>
<%: Model.JobTitle %>
<%: Model.News %>
<%: Model.Node %>
</div>
<div>
<%: Html.ActionLink("Change Email Address", "ChangeEmailAddress", new { @id = Model.UserId })%>
</div>
</div>
当我运行我的应用程序时出现错误:
无法找到资源。 说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
请求的网址:/Areas/Admin/Views/User/Detail.aspx
我不明白?是因为语法错误吗?
答案 0 :(得分:3)
以前的帖子在逻辑上是正确的,但您在控制器中分配的视图包名称不同。它应该是:
<div id="user-details-view">
<div>
Title:
</div>
<div>
<%: ViewBag.email %>
<%: ViewBag.title %>
<%: ViewBag.node %>
</div>
<div>
<%: Html.ActionLink("Change Email Address", "ChangeEmailAddress", new { @id = ViewBag.user })%>
</div>
</div>
希望有所帮助......
答案 1 :(得分:1)
一定是这样的
<%: ViewBag.JobTitle %>
<%: ViewBag.News %>
<%: ViewBag.Node %>
答案 2 :(得分:1)
将Model.
替换为ViewBag.
<%: ViewBag.title %>
<%: ViewBag.email %>
<%: ViewBag.node %>
并且也改变了这个
<%: Html.ActionLink("Change Email Address", "ChangeEmailAddress", new { id = ViewBag.user })%>
答案 3 :(得分:0)
您必须使用以下语法:
<%: ViewBag.email %>
<%: ViewBag.title %>
<%: ViewBag.node %>
但如果使用Model:
会更好public class UserInfo
{
public int UserId { get; set; }
public string Email { get; set; }
public string Title { get; set; }
public NodeType Node { get; set; }
}
[HttpGet]
public ActionResult Detail( int userId )
{
var data = ZincService.GetUserForId( userId );
var user = new UserInfo();
if ( data != null )
{
user.UserId = userId;
user.Email = data.Email;
user.Title = data.JobTitle;
user.Node = data.Node;
}
return View( user );
}
在视图(MVC3)中使用剃刀语法:
@model UserInfo
<div id="user-details-view">
<div>
Title:
</div>
<div>
@Model.Title
@Model.Node
</div>
<div>
@Html.ActionLink("Change Email Address", "ChangeEmailAddress", new { @id = Model.UserId })
</div>
</div>