【发布时间】:2016-03-15 05:59:49
【问题描述】:
下面的代码有一些问题。我有 2 个字段和一个搜索按钮。当我只为字段Holiday 赋值并搜索时,它不会击中控制器。但是,如果我为字段Year 赋值,那么只有它会触发控制器并将两个字段的值都传递给它。
索引.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();
【问题讨论】:
-
您的控制器的名称是什么?你也有自定义路线吗?
-
因为参数
year是 typeofint并且是必需的(您的控制器将抛出异常。将其更改为int? year(可为空)
标签: c# ajax asp.net-mvc-4