0

我不明白,我的控制器中有我的:

[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。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

请求的 URL:/Areas/Admin/Views/User/Detail.aspx

我不明白?是因为语法错误吗?

4

4 回答 4

3

以前的帖子在逻辑上是正确的,但是您在控制器中分配了不同的 viewbag 名称。它应该是:

<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>

希望能帮助到你..

于 2012-10-18T07:53:41.860 回答
1

应该是这样的

 <%: ViewBag.JobTitle %>
   <%: ViewBag.News %>
   <%: ViewBag.Node %>
于 2012-10-18T07:39:07.717 回答
1

替换Model.ViewBag.

  <%: ViewBag.title %>
   <%: ViewBag.email %>
   <%: ViewBag.node %>

并改变这个

<%: Html.ActionLink("Change Email Address", "ChangeEmailAddress", new { id = ViewBag.user })%>
于 2012-10-18T07:39:31.190 回答
0

您必须使用该语法:

<%: ViewBag.email %>
<%: ViewBag.title %>
<%: ViewBag.node %>

但是如果你使用模型会更好:

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) 中使用 razor sintax:

@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>
于 2012-10-18T08:05:50.283 回答