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、voido_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"...>。最後の2つのパラメーターを交換すると、次のように出力が生成されます。

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

残りの部分は、プロジェクトについて詳しく知らなくても問題なく表示されます。

于 2010-10-03T01:31:56.977 に答える