MVC 4提交按钮没有响应无法呼叫控制器

问题描述:

我的观点提交按钮没有响应。它无法调用[Httppost]方法请检查我的代码below.When我点击提交时没有从视图或控制器的响应。我的httpGet和Httppost方法具有相同的名称。MVC 4提交按钮没有响应无法呼叫控制器

* View 



    @model MT566_PSS.Models.EventController 

    @{ 
    ViewBag.Title = "Assign Controller"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
    } 


    @using (Html.BeginForm("EventAssign", "ShowMessage", new { extMsgId = Model.ExternalMessageId, userId = Session["commitId"], currentController = Model.COMMIT_ID }, FormMethod.Post, new { id = "formPosted1" })) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    <div class="BNYMInputBox" id="BlotterSelection"> 
     <div class="InputBoxHeader"> 
      <h3>Assign Controller</h3> 
     </div> 
     <div><span id="postResult"></span></div> 
     <div id="inputFields"> 
      @Html.DropDownListFor(m => m.ID, Model.UserList, "Select", new { @id = "SelectedValue" }) 


      <input type="submit" value="Submit" id="Submit" /> 
      @Html.ActionLink("Back to List", "GetExtMsg") 
     </div> 
    </div> 
} 




* Controller 

    [HttpPost] 
     public ActionResult EventAssign(int extMsgId = 0, string userId = "", string currentController = "") 
     { 
    T_REVIEW_EVENT_ID revent = _dbContext.T_REVIEW_EVENT_ID.FirstOrDefault(x => x.EXT_MSG_ID == extMsgId); 
      if (revent != null) 
      { 
       revent.CTRL_COMMIT_ID = userId; 
      } 
      _dbContext.SaveChanges(); 

      var log = new T_LOG 
      { 
       EXT_MSG_ID = extMsgId, 
       COMMIT_ID = userId, 
       AFFECTED_DATE = DateTime.Now, 
       COMMENTS = currentController + " Changed to:" + userId, 
       CHANGED_COLUMN = "Table: " + "T_Review_Event_Id, " + "Column: " + "CTRL_INDICATOR", 
       OLD_VALUE = currentController, 
       NEW_VALUE = "Controller: " + userId, 
       APPLIED_LEVEL = "" 
      }; 
      _dbContext.T_LOG.Add(log); 
      _dbContext.SaveChanges(); 
      ViewData["result"] = "Updated..!!"; 
      return View("Result"); 
     } 
+0

你是控制器'ShowMessageController'吗? – 2014-10-02 12:09:10

+0

确认您的控制器名称,并确保您正在使用'BeginForm()' – lacoder 2014-10-02 12:38:48

+0

Hi Friends的正确超载,我检查了所有可能的事情,如控制器名称验证,更改视图名称以及模型名称,并尝试创建新视图。但仍然提交按钮不起作用或不会将控制权转移给[Httppost]方法 – user3177332 2014-10-06 13:40:59

确保您传递适当的值作为动作和控制器。根据你的代码“EventAssign”是你的动作,“ShowMessage”是你的控制器。而不是通过这样的

@using (Html.BeginForm("EventAssign", "ShowMessage", new { extMsgId = Model.ExternalMessageId, userId = Session["commitId"], currentController = Model.COMMIT_ID }, FormMethod.Post, new { id = "formPosted1" })) 
    { 
     ........... 
     ............ 
    } 

值,您可以通过使用隐藏字段的值这样

@using (Html.BeginForm("EventAssign", "ShowMessage", FormMethod.Post, new { id = "formPosted1" })) 
    { 
     <input type="hidden" name="extMsgId" id="extMsgId" value="@Model.ExternalMessageId"></input> 
     <input type="hidden" name="userId" id="userId" value="@Session["commitId"]"></input> 
     <input type="hidden" name="currentController" id="currentController" value="@Model.COMMIT_ID"></input> 
     ........... 
     ............ 
    } 

我希望这对您有所帮助。