对此有何看法?
我在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中选择的。
非常感谢
答案 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时,您可以像使用文本框一样访问该值。