2
以下はコントローラとビューです。 [送信]ボタンがクリックされると、アプリケーションは「リソースが見つかりません」というエラーを発生させます。私はGetとPostを使用することがMVCの非常に基本的な概念であることを知っています。 GetとPostを使うときの実用的なシナリオと、それに続くコードとは何かを考えて、私にコンセプトを明確にするだろうか?ASP.NET MVC 3 RAZOR:POSTを使用すると、「リソースが見つかりません」というエラーが表示されます。
コントローラー:
namespace MVCModelBinding.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost, ActionName("Index")]
public ActionResult IndexPost()
{
if (Request.Form.Count > 0)
{
string id = Request.Form["ID"];
string fname = Request.Form["FirstName"];
string lname = Request.Form["LastName"];
ViewBag.StatusMessage = "Employee data received successfully for ID " + id + "!";
}
return View();
}
public ActionResult About()
{
return View();
}
}
}
ビュー(index.chtml)
@using (Html.BeginForm("IndexPost", "HomeController",FormMethod.Post))
{
<table>
<tr>
<td>
Employee ID
</td>
<td>
@Html.TextBox("ID")
</td>
</tr>
<tr>
<td>
First name
</td>
<td>
@Html.TextBox("FirstName")
</td>
</tr>
<tr>
<td>
Last Name
</td>
<td>
@Html.TextBox("LastName")
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit" />
</td>
</tr>
</table>
}
おかげ
ポール
ありがとうございました。 @ Html.ActionLink( "Search"、 "Index")のようなアクションリンクができます。 の代わりにフォームを投稿するために使用されます。 ORアクションリンクは常にGETメソッドを探しますか? – Paul
@Paul:リンク自体はフォームを送信しません。これは、HTMLで規定された標準のブラウザ動作であり、ASP.NET MVCとは関係ありません。 Javascriptを使用してフォームを送信することができます(また、 'POST'によって送信が行われるように選択することもできます)。ただし、クリック時にフォームをシリアライズしてAJAX要求を手動で行う必要があります。 – Jon