使用FormMethod.Get - MVC2在BeginForm中别名查询字符串参数

时间:2010-09-21 20:34:02

标签: c# asp.net-mvc asp.net-mvc-2

问题

有没有办法为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

编辑:似乎不可能。看起来我必须自己做..

1 个答案:

答案 0 :(得分:2)

我认为您可以将文本框控件更改为不使用模板,并使用您希望在查询字符串中看到的名称,如下所示...

<%= Html.TextBox("s", Model.searchTerm) 

或者您可以更改TextBoxFor方法使用自定义模板的模板,但我不确定您将使用哪种约定。也许检查“searchTerm”的型号名称?

This site有一些如何创建自定义模板的示例。

很抱歉,如果代码中的语法不正确,但我在这台机器上没有MVC。