我在ASP.Net和razor中有一个表单.
我需要有两种方式来提交表单:一种是通过Edit操作,另一种是通过Validate操作.
我应该怎么做呢?
我不介意使用JavaScript.
编辑:
使用自定义属性我得到此错误.
控制器类型'InspecoesController'上的当前动作'Resultados'请求在以下操作方法之间是不明确的:System.Web.Mvc.ActionResult Validar(System.Collections.Generic.ICollection
1[Waveform.IEP.Intus.Server.Web.ViewModels.ResultadoViewModel]) on type Waveform.IEP.Intus.Server.Web.Controllers.InspecoesController System.Web.Mvc.ActionResult Resultados(System.Collections.Generic.ICollection1 [Waveform.IEP.Intus.Server.Web. ViewModels.ResultadoViewModel])类型为Waveform.IEP.Intus.Server.Web.Controllers.InspecoesController
Ram*_*nas 73
这就是我们在应用程序中的含义:
属性
public class HttpParamActionAttribute : ActionNameSelectorAttribute
{
public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
{
if (actionName.Equals(methodInfo.Name, StringComparison.InvariantCultureIgnoreCase))
return true;
var request = controllerContext.RequestContext.HttpContext.Request;
return request[methodInfo.Name] != null;
}
}
Run Code Online (Sandbox Code Playgroud)
用它装饰的动作:
[HttpParamAction]
public ActionResult Save(MyModel model)
{
// ...
}
[HttpParamAction]
public ActionResult Publish(MyModel model)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
HTML /剃刀
@using (@Html.BeginForm())
{
<!-- form content here -->
<input type="submit" name="Save" value="Save" />
<input type="submit" name="Publish" value="Publish" />
}
Run Code Online (Sandbox Code Playgroud)
name 提交按钮的属性应与动作/方法名称匹配
这样您就不必在javascript中硬编码网址
Łuk*_*.pl 44
您可以使用jquery执行此操作,只需将两个方法提交给不同的URL,例如使用以下格式:
<form id="myForm">
<%-- form data inputs here ---%>
<button id="edit">Edit</button>
<button id="validate">Validate</button>
</form>
Run Code Online (Sandbox Code Playgroud)
您可以使用此脚本(确保它位于视图中,以便使用Url.Action属性):
<script type="text/javascript">
$("#edit").click(function() {
var form = $("form#myForm");
form.attr("action", "@Url.Action("Edit","MyController")");
form.submit();
});
$("#validate").click(function() {
var form = $("form#myForm");
form.attr("action", "@Url.Action("Validate","MyController")");
form.submit();
});
</script>
Run Code Online (Sandbox Code Playgroud)
如果您使用剃须刀在asp.net中工作,并且您想要控制多个提交按钮事件.那么这个答案将指导您.让我们举个例子,我们有两个按钮,一个按钮会将我们重定向到"PageA.cshtml",其他按钮会将我们重定向到"PageB.cshtml".
@{
if (IsPost)
{
if(Request["btn"].Equals("button_A"))
{
Response.Redirect("PageA.cshtml");
}
if(Request["btn"].Equals("button_B"))
{
Response.Redirect("PageB.cshtml");
}
}
}
<form method="post">
<input type="submit" value="button_A" name="btn"/>;
<input type="submit" value="button_B" name="btn"/>;
</form>
Run Code Online (Sandbox Code Playgroud)
这是一个很好的eplanation: ASP.NET MVC - 同一形式的多个按钮
用两个词来表示:
你可以在你的行动中分析提交按钮的值,
或者
用你的版本ActionMethodSelectorAttribute(我个人喜欢并建议)单独行动.
| 归档时间: |
|
| 查看次数: |
137008 次 |
| 最近记录: |