我在.NET核心MVC項目上遇到了表單助手的問題。我有以下形式:Asp窗體助手不能正確創建路徑
MyForm.cshtml
<div id="myDiv" class="row">
<br />
<form asp-controller="testing" asp-action="MyForm" asp-route-returnUrl="returnHome">
<input type="text" asp-for="Name" name="Name" />
<button type="submit">Submit</button>
</form>
和我TestingController.cs行動
[HttpGet, Route("testing/MyForm/{code}")]
public IActionResult MyForm(string code)
{
return View();
}
[HttpPost]
public IActionResult MyForm(FormVM request)
{
// do stuff
// return some view
return View();
}
這裏的想法是,MyForm的頁面上的用戶的土地用某種代碼(通常是GUID,但其他字符串是可能的)。然後他們填寫表格並提交。我遇到的問題是,表單的助手不能正確構建表單的動作(或者至少不是它在這裏說的方式https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms)。
如果我使用上面的代碼並檢查html,表單的動作將是「測試/ MyForm/asdf?returnUrl = returnHome」(所使用的代碼是「asdf」)。
我得到了同樣的結果,不管我是否包含asp-controller
件。
如果我使用<form asp-route="MyForm">
然後表單的動作也只是空白,<form action method="post">
我需要的是行動,是「測試/ MyForm的?RETURNURL = returnHome」但是從我{代碼}值保持在爬行有誰知道如何做到這一點?
謝謝!