[英]POST data to controller with ASP.NET MVC
我正在將ASP.NET MVC與C#和純引導程序一起使用。 我的一個視圖包含一個標簽,文本輸入框和一個提交按鈕:
@{
ViewBag.Title = "BinSearch";
Layout = "~/Views/Shared/_LayoutSearch.cshtml";
}
<h2>BinConfig Search</h2>
@using (Html.BeginForm("FiEdit", "EditConfigController"))
{
<div class="form-group">
<label for="issuerKey">Issuer Key</label>
<input type="text" name="key" />
<input type="submit" class="btn btn-default" value="Search" />
</div>
}
當我單擊“提交”按鈕時,我想將數據傳輸到控制器EditConfigController到此方法:
[HttpPost]
public ActionResult FiEdit(int key)
{
return View(new IssuerKey().Key = key);
}
然后應該創建一個新視圖,在這里我可以根據提供的密鑰編輯數據。 這是FiEdit視圖:
@model BinFiClient.Models.IssuerKey
@{
ViewBag.Title = "FiEdit";
Layout = "~/Views/Shared/_LayoutEdit.cshtml";
}
<h2>FiEdit</h2>
但是,當我單擊“提交”按鈕時,我收到404錯誤,並且URL路徑如下所示:
http://localhost:58725/EditConfigController/FiEdit
這實際上是我上面發布的控制器中方法的路徑。
我基本上需要的是一種將數據發布到另一個控制器的方法。 我該怎么做?
編輯:現在我收到錯誤:
傳遞到詞典中的模型項的類型為'System.Int32',但是此詞典需要類型為'BinFiClient.Models.IssuerKey'的模型項。
您可以嘗試:
@using (Html.BeginForm(("FiEdit", "EditConfigController", FormMethod.Post,
new { enctype = "multipart/form-data" })))
{
<div class="form-group">
<label for="issuerKey">Issuer Key</label>
<input type="text" name="key" />
<input type="submit" class="btn btn-default" value="Search" />
</div>
}
嘗試用以下代碼替換您的代碼:
@using (Html.BeginForm("FiEdit", "EditConfig", FormMethod.Post))
{
<div class="form-group">
<label for="issuerKey">Issuer Key</label>
<input type="text" name="key" />
<input type="submit" class="btn btn-default" value="Search" />
</div>
}
這會將參數key
到EditConfig控制器。
如果您想發布到另一個控制器中的操作TestEdit,例如說TestController,您的代碼應更改為以下內容:
@using (Html.BeginForm("TestEdit", "Test", FormMethod.Post))
...
要解決“模型項傳遞到字典中”的錯誤,請將POST更改為:
[HttpPost]
public ActionResult FiEdit(int key)
{
return View(new IssuerKey() { Key = key });
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.