Ajax.BeginForm()没有命中Controller

时间:2016-03-15 05:59:50

标签: c# ajax asp.net-mvc-4

我在下面的代码中遇到了一些问题。我有2个字段和一个搜索按钮。当我仅为字段Holiday提供值并进行搜索时,它不会触及控制器。但是,如果我为字段Year赋予值,那么只有它会触及控制器并将该字段的值传递给它。

Index.cshtml:

@using (Ajax.BeginForm("Search", "Holiday", new System.Web.Mvc.Ajax.AjaxOptions
       {
           InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace,
           HttpMethod = "POST",
           UpdateTargetId = "holidaylist"
       }))
{                          
    <table>                                
        <tr>                                    
            <td>Holiday: </td>
            <td><input id="searchtext" name="searchtext" type="text" /></td>                           
            <td>Year: </td>
            <td><input id="year" name="year" type="text" />                                                                  </td>                                                                                      
            <td><input type="submit" value="View" id="BtnSubmit" /></td>
        </tr>                            
    </table>                     
}

控制器:

 HttpPost]
 public ActionResult Search(string searchtext, int year)
 {            
     try
     {
         string selyear = year.ToString();

1 个答案:

答案 0 :(得分:2)

这条路线总是期待一年,因为年份不是可选参数。 你可以通过使年可以为空来解决这个问题:

Excel