Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Asp.net 将空表单集合列表发送到MVC控制器_Asp.net_Ajax_Asp.net Mvc 3_Ajax.beginform_Formcollection - Fatal编程技术网

Asp.net 将空表单集合列表发送到MVC控制器

Asp.net 将空表单集合列表发送到MVC控制器,asp.net,ajax,asp.net-mvc-3,ajax.beginform,formcollection,Asp.net,Ajax,Asp.net Mvc 3,Ajax.beginform,Formcollection,我有一个非常简单的代码: @using (Ajax.BeginForm("SearchAccount", "Account", new AjaxOptions { UpdateTargetId = "SearchResults", HttpMethod = "Get", InsertionMode = InsertionMode.Replace })) { <fieldset> <input id="txtSearchBox"

我有一个非常简单的代码:

@using (Ajax.BeginForm("SearchAccount", "Account", new AjaxOptions { UpdateTargetId = "SearchResults", HttpMethod = "Get", InsertionMode = InsertionMode.Replace })) 
    {
        <fieldset>
            <input id="txtSearchBox" name="SearchString" type="text"  />
        </fieldset>
        <input type="submit" value="Search"  />
    }
@使用(Ajax.BeginForm(“SearchAccount”、“Account”、新的AjaxOptions{UpdateTargetId=“SearchResults”、HttpMethod=“Get”、InsertionMode=InsertionMode.Replace}))
{
}
在控制器端,我有以下代码

public PartialViewResult SearchAccount(FormCollection formCollection)
    {
        try
        {
            string SearchString = formCollection["SearchString"];
            List<Moovers.DAL.Account> Accounts = Moovers.BL.Account.SearchAccount(SearchString);

            return PartialView("_AccountSearchResult", Accounts);        
        }
        catch (Exception ex)
        {
            throw;
        }

    }
公共PartialViewResult搜索帐户(FormCollection FormCollection)
{
尝试
{
string SearchString=formCollection[“SearchString”];
列表帐户=Moovers.BL.Account.SearchAccount(SearchString);
返回PartialView(“\u AccountSearchResult”,Accounts);
}
捕获(例外情况除外)
{
投掷;
}
}

问题是“FormCollection”,它是空的。可能的原因是什么?

这是因为您使用了
“GET”
作为方法


请参见为什么要使用
FormCollection
?您可以直接将
SearchString
作为操作参数,对吗

public PartialViewResult SearchAccount(string SearchString)
{
  try
  {
     var Accounts = Moovers.BL.Account.SearchAccount(SearchString);
     return PartialView("_AccountSearchResult", Accounts);        
  }
  catch (Exception ex)
  {
     throw;
  }
}
若要从表单传递多个值,那个么可以创建视图模型并简化您的工作

注意,重要的是表单字段的名称应与参数/属性名称匹配。

public class SearchModel
{
   public string SearchString { get; set; }
   .. others
}

public PartialViewResult SearchAccount(SearchModel searchModel)
{
  ...
}