我有行动方法
[HttpPost]
public virtual ActionResult Search(string searchTerm)
...
表格
@using (Html.BeginForm(MVC.Products.Search(), FormMethod.Post))
{
<input id="searchBox" name="searchTerm" type="text" />
<input type="submit" value="Search" />
}
但这不起作用,Search()需要searchTerm参数,我不知道如何传递它?
答案 0 :(得分:2)
你可以传递null:
@using (Html.BeginForm(MVC.Products.Search(null), FormMethod.Post))
答案 1 :(得分:0)
检查T4MVC ProductsController.generated.cs文件,查找采用零参数的Search()方法。听起来你不会在那里找到它,但正如David Ebbo在上面发布的那样,它应该是在大多数情况下产生的。考虑到你在这里粘贴的方法被装饰为虚拟,这一点特别奇怪,这可能发生在以前被T4MVC标记的某个时刻。
因此,要修复它,您可以尝试删除* .generated.cs文件并重新生成它们,方法是右键单击VS IDE中的T4MVC文件并选择“运行自定义工具”。
如果仍未生成零参数方法但其他方法仍未生成,请检查您的搜索方法可能有什么不寻常之处。您可能正在做一些T4MVC不支持的事情。今天发生了一个带有String返回的方法。我不得不使用null参数hack或返回一个ContentResult,按照In MVC, how do I return a string result?,David在T4MVC and Ajax method with parameter友好引用。