我在一个区域的视图中有这个
<form action='@Url.Action("/DeleteCoverage")'></form>
但这仅提供以下html
<form action=''></form>
但是以下代码
@using (Html.BeginForm("DeleteCoverage", "Coverage", new { area = "Coverage" }, FormMethod.Post, new { id = "delform" }))
给出了html
<form action="/Coverage/DeleteCoverage/af361feb-1818-430b-803c-e332a162b0e2" id="delform" method="post">
我只有在为此方法添加路由时才会获得此HTML。其他明智的只是变成action=""
如果我不添加路由,为什么我没有获得正确的HTML?
答案 0 :(得分:2)
您错误地使用了Url.Action
助手。此助手具有several overloads并期望您传递操作,控制器,路由值,...当前您传递的/DeleteCoverage
是无效的操作名称(操作名称不能以/
开头)。
因此选择其中一个重载并正确使用它:
<form action="@Url.Action("DeleteCoverage", "Coverage", new { area = "Coverage" })"></form>
哦,顺便说一句,您应该使用Html.BeginForm
生成表单标记,而不是硬编码。