【发布时间】:2021-11-26 20:49:26
【问题描述】:
我有一个使用 Html.BeginForm() 构建的 HTML 表单。我指定了我的控制器名称和操作名称,但它没有转到正确的操作。
这是我认为的相关行:
@using (Html.BeginForm("AdminPanelResult", "AdminPanel", FormMethod.Post))
在我的控制器中,我有两种方法。无论我做什么,它总是转到 AdminPanel() 而不是 AdminPanelResult()。
这是 AdminPanel 的样子:
public ActionResult AdminPanel() {...}
这是 AdminPanelResult():
[System.Web.Http.HttpPost]
public ActionResult AdminPanelResult(ContentModel model) {...}
我的问题,如何让 Html.BeginForm 实际使用正确的操作?
编辑:这里要求的是我的视图形式的其余部分:
<legend>Admin Panel Access</legend>
@using (Html.BeginForm("AdminPanelResult", "AdminPanel", FormMethod.Post))
{
<fieldset>
<div id="AdminPanelResult"></div>
<ol>
<label for="selOrgName">Choose an Organization Name:</label>
<select name="selOrgName" id="selOrgName">
<option id="0">Select an Org Name</option>
@foreach (var r in data.glOrgName)
{
<option id="@r.OrgKey" value="@r.OrgName">@r.OrgName</option>
}
</select>
<label for="apiDrop">Choose the type of Data:</label>
@Html.DropDownList("ApiId", (MultiSelectList)ViewBag.Categories, new { multiple = "multiple" })
<li>
@Html.Label("...")
@Html.TextBox("..")
</li>
<!--Several more identical elements removed for brevity-->
</ol>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
}
【问题讨论】:
-
您的 Startup.cs 文件是什么样的?您是否注册了任何非默认路由?
-
控制器的名称是什么?
-
控制器名称为 AdminPanelController。为此,我没有对 Startup.cs 进行任何更改。
标签: c# html asp.net-mvc umbraco