C# 无法从局部视图将RouteValue传递给操作

C# 无法从局部视图将RouteValue传递给操作,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我想在我的MVC应用程序中添加搜索功能。此功能应可用于所有页面。因此,我将其添加到共享布局中 我唯一的问题是,尽管我正在局部视图中创建一个新的表单,但我无法将routValue传递给搜索操作 目标操作:(执行搜索) 部分观点: @model DocuLine.Models.SearchModel @using (Html.BeginForm("Search", "Home", FormMethod.Post)) { @Html.EditorFor(model => model.K

我想在我的MVC应用程序中添加搜索功能。此功能应可用于所有页面。因此,我将其添加到共享布局中

我唯一的问题是,尽管我正在局部视图中创建一个新的
表单
,但我无法将routValue传递给
搜索
操作

目标操作:(执行搜索)

部分观点:

@model DocuLine.Models.SearchModel

@using (Html.BeginForm("Search", "Home", FormMethod.Post))
{
    @Html.EditorFor(model => model.Keyword)
    <input type="submit" value="Search" />
}
@model DocuLine.Models.SearchModel
@使用(Html.BeginForm(“搜索”、“主页”、FormMethod.Post))
{
@EditorFor(model=>model.Keyword)
}
试试看


为什么将类定义为
关键字
,然后查看
搜索结果
您将其作为
关键字
传递(小写首字母)

一,

您可以使用
UpdateModel
方法更新类
SearchModel
,以检查是否可以进行正确的赋值

2
FormCollection


您可以尝试在方法
Search
表单数据(
FormCollection
)中接收作为参数的数据,并检查是否得到所需的数据。

最后,我解决了它。问题是
SearchModel
参数名是
keyword
,它应该是除
keyword
之外的任何内容,因为已经有一个html控件使用此名称呈现

要解决此问题,应仅使用其他名称命名:

public ActionResult Search(SearchModel model)
{
     // model now has a value.
}

您是如何创建局部视图的?您正在向它传递SearchModel的实例吗?是的,只有新的空InstanceHanks,但我的问题是在重定向之前。因为参数从视图传递为null。这是我的答案。。。公共行动结果搜索(SearchModel)是的,谢谢。真的,我没注意到。我以为你说的只是重定向。请进一步澄清,将其作为答案,让其他人从中受益。再次感谢。
public ActionResult Search(SearchModel model)
public ActionResult Search(SearchModel model)
{
     // model now has a value.
}