详细信息视图不起作用mvc 5

时间:2015-09-30 09:29:57

标签: asp.net-mvc

我有一个MVC 5应用程序。我会跟进本教程Getting Started with ASP.NET MVC 5

当我单击详细信息,编辑或删除时,我得到HTTP错误400.0 - 错误请求。

我的索引视图

alert()

我的详情视图

@foreach (var item in Model)
    {
 <div class="city">
 <h2>@Html.DisplayFor(modelItem => item.announce_PublishDate)</h2>
 <p>@Truncate(item.announce_Description, 90)</p>
 <p>@Html.ActionLink("more", "Details", new { id = item.announce_ID }) </p></div>}

控制器

<div>
<h4>prokirikseis</h4>
<hr />
<dl class="dl-horizontal">
    <dd>
        @Html.DisplayFor(model => model.announce_ID)
    </dd>
    <dd>
        @Html.DisplayFor(model => model.announce_Description)
    </dd>
    <dd>
        @Html.DisplayFor(model => model.announce_PublishDate)
    </dd>

    </dl>
    </div>
      <p>
@Html.ActionLink("Edit", "Edit", new { id = Model.announce_ID }) |
@Html.ActionLink("Back to List", "Index")</p>

模型

public ActionResult Details(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        announce announce= db.announce.Find(id);
        if (announce == null)
        {
            return HttpNotFound();
        }
        return View(announce);
    }

我做错了什么?我注意到它在网址中带来了正确的ID。 http://localhost:zzzzz/ltest/Details/01_2.2但它没有带来内容。 谢谢

1 个答案:

答案 0 :(得分:3)

您的操作方法正在接受int类型的参数,但类announcements中的键是string,而不是int。 (并且您问题中的url正在将值01_2.2传递给Details()方法,因此idnull。)

将您的方法更改为

public ActionResult Details(string id)

虽然我建议您实际将密钥更改为自动递增int