3

我猜这很简单,但我现在正在学习 MVC 2 并且我被卡住了。我有一些字段和按钮的强类型视图,这些字段和按钮应该通过单击它们来更改数据库中的某些内容。所以它是代码

<% using (Html.BeginForm("UpVote", "Home",FormMethod.Post,new { linkId = link.LinkID }))
   {%>
        <input type="submit" value="UP" />
<% } %>

还有我的控制器

[HttpPost]
public void UpVote(int linkId)
{
    var updateLink = geekDB.Link.Single(a => a.LinkID == linkId);
    updateLink.UpVotes++;
    geekDB.SaveChanges();

    RedirectToAction("Index");
}

它不起作用。当我按下按钮时,页面重新加载但没有任何反应。我在 UpVote 方法中用断点检查了它,但它永远不会停在那里,我不知道为什么。

4

2 回答 2

3

你所有的行动都应该是ActionResult,你确实 void o_O

你也可以放 ViewResult,ContentResult RedirectRe.. 但它们都是ActionResult

于 2010-10-03T06:47:23.833 回答
1

我会先检查你的路线。

此外,您当前对 BeginForm 的使用也不正确,因为<form action="/Home/UpVote" linkid="yourlinkid" method="post">当我怀疑您希望它是类似的东西时它会产生<form action="/Home/UpVote?linkid=yourlinkid"...>- 交换最后两个参数将产生如下输出:

<% using (Html.BeginForm("UpVote", "Home",new { linkId = link.LinkID }, FormMethod.Post)) {%>
        <input type="submit" value="UP" />
<% } %>

在不了解您的项目的情况下,您的其他东西看起来还不错。

于 2010-10-03T01:31:56.977 回答