MVC asp.net,从文本框中获取数据到javascript函数中

时间:2011-09-10 14:56:50

标签: javascript asp.net-mvc asp.net-mvc-2 html-helper

对此有何看法?

我在VS2010中使用MVC2。我在我的视图中使用javascript将标记放在谷歌地图上。我需要从文本框中获取地址和距离,

<%= Html.TextBox("address") %> <%= Html.TextBox("distance") %>

在我的代码中用作函数drawMap(address, distance);中的参数。

我可以用一个寄存器对象来访问它吗?此外,在<%= Html. (..) %>标记中使用<script type="text/javascript"><script>时遇到一些问题。我意识到我应该在这里实现MVC模型,虽然使用它来填充加载时的文本框,但是无法在POST背面再次从文本框中提取信息,以便在视图中的javascript函数中获取值

任何建议都很受欢迎!提前谢谢。

/////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////// //进一步提问:DropDownListFor&lt;&gt;
////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////

是否还有一种从中获取信息的简单方法:

<%: Html.DropDownListFor(model => model.SavedAddress1, ViewData["StartLoc"] as SelectList) %>

此选项列表保存在Controller中。我会在POST中从控制器中选择哪一个?或者有没有办法确定哪些是直接在Javascript中选择的。

非常感谢

1 个答案:

答案 0 :(得分:4)

要获取文本框值,只需使用javascript

document.getElementById("address").value 

或者,使用jquery,使用

$("#address").val();

如果您改为使用传递给视图的模型(如果用户不必更改文本框中的值,我更喜欢),您可以将其放在脚本中

<script type="text/javascript">
drawmap('<%= Model.Address %>', '<%= Model.Destination%>');
<script>

要在表单帖子中保留此值,您可以使用Html.HiddenFor标记

 <%: Html.HiddenFor(model => model.Address) %>

更新到您的修改

对于下拉列表,如果将其放在表单标记中,它将绑定到模型,因此您将在控制器中获取它。使用javascript时,您可以像使用文本框一样访问该值。