C#-如何将html输入值传递给url.Action

时间:2018-07-25 18:36:47

标签: c# html asp.net-mvc razor

我有一个input和一个button。输入的值应该传递给@url.Action,如以下代码中的描述:

<input class="in-class" id="textbox" type="text" runat="server" />
<button class="btn-class" id="press" type="button" onclick="location.href='@Url.Action("Index", "Home", new {id = /*Value Of textbox*/ })'" >click here</button>

正如我在代码中提到的,/*Value Of textbox*/应该是输入的当前值。

3 个答案:

答案 0 :(得分:2)

我使用此表格

<input type="text" id="txtValue" /> <input type="button" value="Detail" onclick="location.href='@Url.Action("Action", "Home")?Value=' + $('#txtValue').val()" />

否则您将无法在jquery函数中编写该代码。

答案 1 :(得分:1)

使用jQuery或JavaScript更改href值,如下所示:

     <button class="btn-class" id="press" type="button" onclick="changeHref()" >click here</button>

   function changeHref(){
         var url = '@Url.Action("Index", "Home")';
         var txtVal = $('#textbox').val();
         window.location.href = url + '/?txtVal=' + txtVal;
   }

答案 2 :(得分:1)

我更喜欢使用jQuery click处理程序,因为您具有按钮ID并遵循standard event registration model to separate HTML & JS

HTML

<input class="in-class" id="textbox" type="text" />
<button class="btn-class" id="press" type="button">click here</button>

JS

$('#press').click(function () {
   var url = '@Url.Action("Index", "Home")';
   var textValue = $('#textbox').val();

   window.location.href = url + '?id=' + textValue;
});

PS::由于Razor不需要,因此不需要在MVC中使用runat="server"属性。