首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在my View中使用Viewbag

如何在my View中使用Viewbag
EN

Stack Overflow用户
提问于 2012-10-18 15:37:20
回答 4查看 545关注 0票数 0

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

代码语言:javascript
运行
复制
[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

代码语言:javascript
运行
复制
<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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-18 16:05:50

您必须使用该sintax:

代码语言:javascript
运行
复制
<%: ViewBag.email %>
<%: ViewBag.title %>
<%: ViewBag.node %>

但是如果你使用Model会更好:

代码语言:javascript
运行
复制
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 );
}

在带有razor sintax的视图(MVC3)中:

代码语言:javascript
运行
复制
@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>
票数 0
EN

Stack Overflow用户

发布于 2012-10-18 15:53:42

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

代码语言:javascript
运行
复制
<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>

希望能有所帮助..。

票数 3
EN

Stack Overflow用户

发布于 2012-10-18 15:39:08

一定是这样的

代码语言:javascript
运行
复制
 <%: ViewBag.JobTitle %>
   <%: ViewBag.News %>
   <%: ViewBag.Node %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12949479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档