繁体   English   中英

使用MVC3操作在ASPX中提交表单后,在Controller中发出请求

[英]Request in Controller after submitting a form in ASPX using MVC3 action

我在控制器中有以下代码:

public ActionResult SearchPage() {

         return View();
      }

[HttpPost]
public ActionResult Search( string option, string text ) {
    // how to get request values-> and then I don't need the above parameters

    ViewData["Results"] = _some.Search(option, text); //option and text should be from Request
         return RedirectToAction( "SearchPage" );
}

和SearchPage代码:

<form action="<%=Url.Action("Search","Persons")%>" method="post" name="search-form">

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

</form>

<% if ( ViewData["Results"] != null ) {
      %>
         <p>Test</p>
      <%
   }
%>

如何使用HttpRequest类获取提交的值(来自selectbox的值和来自输入文本的文本)?

谢谢

很多种方法。

使您的方法采用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。

第一件事,你应该有类似

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

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

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

话虽如此,如果您不想为此操作使用动作参数,则可以使用以下命令:

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

使用asp.net-mvc,您无需手动从HttpRequest提取值。 Framework会自动执行此操作,并称为模型绑定。 在整数,字符串等简单类型参数的情况下,只是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" />

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM