开发者

asp.net mvc redirect to action and passing a parameter from user input

I have a page with a input box and a button, when the user clicks the button i want to redirect to a controller action that has as parameter the value of the input box.

<input id="CodProiect" type="text" />
<input id="Cauta" type="button" value="Cauta" onclick="window.location.href='@Url.Action("Cauta", "Componente", new { CodProiect = "param" })';"/>

How can i开发者_JAVA技巧 get the "param" from the input box ?


You could just use a form with a GET method

<form action="@Url.Action("Cauta", "Componente")" method="GET">
  <input id="CodProiect" name="CodProiect" type="text" />
  <input id="Cauta" type="submit" value="Cauta" />
</form>

The form will add the parameter as part of the query string of the URL e.g. www.yoursite.com/Cauta/Componente?CodProiect=user+entered+value


Value of the Action is prepared at server side and sent to the browser so you cannot have the value at the server when it is a user input.

You can use jquery to change the URL at client side.

Also passing state in an PRG scenario is a common problem in ASP NET MVC. You can either:

  • Store it temporarily in session
  • Pass it as a parameter in URL


Use a form.

Form:

<form action="Componente/Cauta">
    <input id="CodProiect" type="text" />
    <input id="Cauta" type="submit" value="Cauta" />
</form>

Controller:

public ActionResult Cauta(string CodProiect)
{
   //Do some stuff
}

More info: http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx

Syntax may be outdated, but you get the point...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜