有没有办法为MVC生成的参数设置别名,在我的例子中它是searchTerm
param?例如,在我的viewmodel中,它仍然是SearchViewModel.searchTerm,但URL看起来更像/Home/Search?s=jimmy
<% using (Html.BeginForm("Search", "Home", FormMethod.Get)) {%>
<%: Html.TextBoxFor(model => model.searchTerm) %>
<input type="submit" value="Search" />
<% } %>
public class SearchViewModel
{
public string searchTerm { get; set; }
}
/Home/Search?searchTerm=jimmy
编辑:似乎不可能。看起来我必须自己做..
答案 0 :(得分:2)
我认为您可以将文本框控件更改为不使用模板,并使用您希望在查询字符串中看到的名称,如下所示...
<%= Html.TextBox("s", Model.searchTerm)
或者您可以更改TextBoxFor方法使用自定义模板的模板,但我不确定您将使用哪种约定。也许检查“searchTerm”的型号名称?
This site有一些如何创建自定义模板的示例。
很抱歉,如果代码中的语法不正确,但我在这台机器上没有MVC。