[英]How to pass a model field to a Javascript function in a view?
我有一个简单的问题,今晚让我感到烦恼......我有一个ASP.NET MVC4 + Razor应用程序。 当用户单击单选按钮时,我想将模型中的字段“Timezone”中的字符串值传递给onclick处理程序,这是一个javascript函数。 在javascript函数中,我将接受字符串并做一些工作,但是现在,我只是弹出一个alert()。 我找到了很多关于必须进行特殊引用的引用,并且我已经尝试了所有这些,但无论我做什么,警报都没有显示任何内容,但是带有单选按钮的表单显示了我的有效值时区文本框。
我真的很感谢你的帮助,弄清楚我做错了什么......如果这不可能(为什么?),那么我可以从javascript函数访问模型的值吗? 我试过@ model.Timezone,但总是有一个空字符串。 当我知道它一定是非常简单的东西时真的很烦人! 无论如何,这里是单选按钮和简单的javascript函数的代码。 我真的很感谢你的帮助!
谢谢,迈克
@Html.RadioButtonFor(model => model.TimezoneSource, "C",
new {propertyName = "UpdateTimezoneRadioButton",
onClick = "TimezoneClicked(@model.Timezone)" })Update Timezone
function TimezoneClicked(timezone) {
alert(timezone);
}
你不应该这样做
onClick = "TimezoneClicked(@model.Timezone)"
当你在html帮助函数中使用它时,它被视为普通字符串。 相反,你应该做以下事情:
onClick = "TimezoneClicked('" + Model.Timezone + "')"
这会将对象中的Timzone值传递给函数。 如果它仍然是空的,请尝试将其打印出来,如下所示,以确保该属性不为空。
<span> @Model.Timezone </span>
您可以尝试以下代码:
@Html.RadioButtonFor(model => model.TimezoneSource, "C",
new {propertyName = "UpdateTimezoneRadioButton",
onClick = "TimezoneClicked('" + Model.Timezone + "')" })Update Timezone
function TimezoneClicked(timezone) {
alert(timezone);
}
如果你需要获得函数中的任何dom元素,你可以这样做:
document.getElementById('@Html.IdFor(model => model.Draw)')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.