ASP.NET MVC 2-視界で送信することにより、データベースの単純な増分値
-
27-09-2019 - |
質問
私は非常に簡単だと思いますが、私は今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" />
<% } %>
あなたのプロジェクトについてもっと知ることなく、残りのものはまさにうまく見えます。
所属していません StackOverflow