如何在不使用Form的情况下获取Controller中的View的textBox值?

时间:2013-07-01 06:39:59

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

我有一个视图 -

@Html.TextBox("Text1","", new { style = "width:350px;" })<br />
<input type="submit" value="Pay" onclick="location.href='@Url.Action("Pay", "Test")'" />

其中Pay是我的操作结果,Test是我的控制器。 我希望在控制器中有Text1值。如何在不使用Form而不是通过ajax调用的情况下实现此目的?

3 个答案:

答案 0 :(得分:1)

你必须使用javascript。首先为您的文本框提供唯一标识符:

@Html.TextBox("Text1", "", new { id = "text1", style = "width:350px;" }

然后在onclick处理程序中,您可以将在文本框中输入的值传递给控制器​​操作:

onclick="location.href='@Url.Action("Pay", "Test")?text=' + encodeURIComponent(document.getElementById('text1').value);"

现在您的Pay控制器操作可能如下所示:

public ActionResult Pay(string text)
{
    ...
}

答案 1 :(得分:1)

Controller需要HTTP动词,例如POST,GET等.POST需要<form />而GET需要查询字符串。您可以使用查询字符串来传递值

function sendValues()
{
   var value1 = document.getElementById('txtfirstname').value;
   var value2 = document.getElementById('txtlastname').value;

   var url = 'http://mysite.com/controllername/?firstname='+value1+'&lastname='+lastname;

   location.href = url;
}

但是,如果它们是敏感的

,我不会在查询字符串中公开值

答案 2 :(得分:0)

可以使用 Javascript / Jquery Ajax 表单