2014-10-08 51 views
0

中只有一个提交按钮正在工作我给提交按钮一个名称,然后检查控制器方法中提交的值。当我点击注册按钮时,它不会触发服务器上的操作方法。这是工作正常与铬和IE 10和以上它不工作在IE9。2使用MVC 3在同一表单上提交按钮。在IE 9

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

回答

0

我没有经历过那件事。 但是有这个问题的解决方案,如果你不希望使用相同的名称提交按钮:

@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); 
    } 
} 
+0

感谢您的答复。但在我的情况下,我不能使用2个actionresult方法。我必须对这两个按钮使用相同的动作。 – udayasri 2014-10-18 09:40:44