Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 与MVC 3在同一表单上有2个提交按钮。IE 9中只有一个提交按钮工作_Html_Asp.net Mvc_Asp.net Mvc 3_Internet Explorer 9 - Fatal编程技术网

Html 与MVC 3在同一表单上有2个提交按钮。IE 9中只有一个提交按钮工作

Html 与MVC 3在同一表单上有2个提交按钮。IE 9中只有一个提交按钮工作,html,asp.net-mvc,asp.net-mvc-3,internet-explorer-9,Html,Asp.net Mvc,Asp.net Mvc 3,Internet Explorer 9,我给提交按钮一个名称,然后在控制器方法中检查提交的值。当我单击register按钮时,它并没有触发服务器上的action方法。这在chrome和IE10及以上版本中运行良好,但在IE9中不起作用 <% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %> <input type="submit" name="PostValue" value="UploadImage" /> <input ty

我给提交按钮一个名称,然后在控制器方法中检查提交的值。当我单击register按钮时,它并没有触发服务器上的action方法。这在chrome和IE10及以上版本中运行良好,但在IE9中不起作用

<% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %>
<input type="submit" name="PostValue" value="UploadImage" />
<input type="submit" name="PostValue" value="Register" />
<% Html.EndForm(); %>

我在这方面没有经验。 但如果您不想使用同名的提交按钮,则有一个解决方案:

@using (Html.BeginForm("PostNews", "Home", FormMethod.Post))
{
    <input type="submit" name="submit.Publish" value="Publish News" />
    <input type="submit" name="submit.Save" value="Save News" />
}

public class HomeController : Controller
{
    [HttpPost, ActionName("PostNews"), ActionRequired("submit.Publish")]
    public ActionResult PublishNews()
    {
        ViewBag.Message = "Your app description page.";

        return View(...);
    }

    [HttpPost, ActionName("PostNews"), ActionRequired("submit.Save")]
    public ActionResult SaveNews()
    {
        return View(...); 
    }
}

public class ActionRequiredAttribute : ActionMethodSelectorAttribute
{
    private readonly string _submitButtonName;
    public ActionRequiredAttribute(string submitButtonName)
    {
        _submitButtonName = submitButtonName;
    }
    public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
    {
        var actionRequired = controllerContext.RequestContext.HttpContext.Request.Form[_submitButtonName];
        return !string.IsNullOrEmpty(actionRequired);
    }
}
@使用(Html.BeginForm(“PostNews”,“Home”,FormMethod.Post))
{
}
公共类HomeController:控制器
{
[HttpPost、ActionName(“PostNews”)、ActionRequired(“submit.Publish”)]
公共行动结果发布新闻()
{
ViewBag.Message=“您的应用程序描述页。”;
返回视图(…);
}
[HttpPost、ActionName(“PostNews”)、ActionRequired(“submit.Save”)]
公共操作结果保存新闻()
{
返回视图(…);
}
}
公共类ActionRequiredAttribute:ActionMethodSelectorAttribute
{
私有只读字符串_submitButtonName;
public ActionRequiredAttribute(字符串submitButtonName)
{
_submitButtonName=submitButtonName;
}
公共覆盖布尔值是有效的请求(ControllerContext ControllerContext,MethodInfo MethodInfo)
{
var actionRequired=controllerContext.RequestContext.HttpContext.Request.Form[_submitButtonName];
return!string.IsNullOrEmpty(actionRequired);
}
}

谢谢您的回复。但在我的例子中,我不能使用2个actionresult方法。我必须对两个按钮使用相同的操作。