質問

私は非常に簡単だと思いますが、私は今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メソッドのBreakpointで確認しましたが、それが止まることはなく、理由がわかりません。

役に立ちましたか?

解決

あなたの行動はすべてあるべきです ActionResult, 、あなたはo_oを無効にしました

viewresult、contentResult redirectreを置くこともできます。しかし、それらはすべてです ActionResult

他のヒント

私は最初にあなたのルートをチェックします。

また、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" />
<% } %>

あなたのプロジェクトについてもっと知ることなく、残りのものはまさにうまく見えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top