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>

アプリを実行すると、エラーが発生します。

リソースが見つかりません。説明:HTTP404。探しているリソース(またはその依存関係の1つ)が削除されたか、名前が変更されたか、一時的に使用できなくなった可能性があります。次のURLを確認し、スペルが正しいことを確認してください。

要求されたURL:/Areas/Admin/Views/User/Detail.aspx

理解できない?構文エラーが原因ですか?

4

4 に答える 4

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>

それが役に立てば幸い..

于 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

あなたはそのsintaxを使わなければなりません:

<%: 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 );
}

かみそりのsintaxでビュー(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>
于 2012-10-18T08:05:50.283 に答える