2012-01-20 26 views

回答

1

第一件事情,你应该有类似

`<select name="searchOption" id="searchOption">` 

`public ActionResult Search(string searchOption, string keyword) {` 

不能使用的字符 - 因为你不能在你的视图的参数 “” t将其转换为您的操作的自动映射参数。

话虽这么说,如果你不希望使用动作参数为这一个,你可以使用类似:

`Request.Params["search-option"]` 
1

用asp.net-MVC,你不需要手动从提取值HttpRequest。框架会自动执行此操作,并将其称为模型绑定。如果是整数,字符串和其他简单的类型参数,只需要在输入参数中使用相同名称的name html操作即可。命名对嵌套的属性和列表来说有点不同。

<select name="option" id="option"> 
<option value="category">Category</option> 
<option value="discipline">Discipline</option> 
<option value="manufacturer">Manufacturer</option> 
</select> 
<input type="text" name="text" id="keyword" /> 

现在,在操作中,选项和文本将具有值。

2

很多方法。

让你的方法采取的FormCollection参数:

public ActionResult SomeActionMethod(FormCollection formCollection) 
{ 
    var key = formCollection["key"]; 

或使用默认模式粘结剂并有每场参数你想:

public ActionResult SomeActionMethod(string name) 

或者

public ActionResult SomeActionMethod(Person person) 

和在你看来

<input name="Person.name" /> 

或者创建您自己的模型活页夹。

如果你希望你可以访问请求,但是如果你想去那条路径 - 使用FormCollection。

相关问题