如何将模型字段传递给视图中的Javascript函数?
今晚我有一个简单的问题一直困扰着我。。。我有一个ASP.NET MVC4+Razor应用程序。当用户单击单选按钮时,我想将一个字符串值从模型中的字段“Timezone”传递给onclick处理程序,它是一个javascript函数。在javascript函数中,我将获取字符串并进行一些工作,但现在,我只需弹出一个alert()。我已经找到了很多关于必须进行特殊引用的引用,并且我已经尝试了所有引用,但是无论我做什么,警报都不会显示任何内容,但是带有单选按钮的表单会在其时区文本框中向我显示一个有效值 我非常感谢你帮我找出我做错了什么。。。如果这是不可能的(为什么?),那么我可以从javascript函数访问模型的值吗?我尝试了@model.Timezone,但总是有一个空字符串。当我知道这一定是件很容易的事情时,真的很烦人!无论如何,下面是单选按钮和简单javascript函数的代码。我真的很感激你的帮助 谢谢, 迈克如何将模型字段传递给视图中的Javascript函数?,javascript,asp.net-mvc,razor,asp.net-mvc-4,Javascript,Asp.net Mvc,Razor,Asp.net Mvc 4,今晚我有一个简单的问题一直困扰着我。。。我有一个ASP.NET MVC4+Razor应用程序。当用户单击单选按钮时,我想将一个字符串值从模型中的字段“Timezone”传递给onclick处理程序,它是一个javascript函数。在javascript函数中,我将获取字符串并进行一些工作,但现在,我只需弹出一个alert()。我已经找到了很多关于必须进行特殊引用的引用,并且我已经尝试了所有引用,但是无论我做什么,警报都不会显示任何内容,但是带有单选按钮的表单会在其时区文本框中向我显示一个有效值
您可以尝试以下代码:
@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>
@Model.Timezone
如果需要在函数中获取任何dom元素,可以执行以下操作:
document.getElementById('@Html.IdFor(model=>model.Draw)
您是否检查了以下代码?
<span> @Model.Timezone </span>