1

今晚我有一个简单的问题一直困扰着我……我有一个 ASP.NET MVC4 + Razor 应用程序。当用户单击单选按钮时,我想将模型中字段“时区”中的字符串值传递给 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);
}
4

3 回答 3

3

你不应该这样做

  onClick = "TimezoneClicked(@model.Timezone)" 

当您在 html 辅助函数中使用它时,它会被视为普通字符串。相反,您应该执行以下操作:

onClick = "TimezoneClicked('" + Model.Timezone + "')"

这会将对象中的 Timzone 值传递给函数。如果它仍然是空的,尝试像下面这样打印出来,以确保该属性不为空。

<span> @Model.Timezone </span>
于 2012-12-03T07:27:06.743 回答
0

你可以试试下面的代码:

@Html.RadioButtonFor(model => model.TimezoneSource, "C",
    new {propertyName = "UpdateTimezoneRadioButton", 
        onClick = "TimezoneClicked('" + Model.Timezone + "')" })Update Timezone

function TimezoneClicked(timezone) {
alert(timezone);
}
于 2012-12-03T04:59:15.747 回答
0

如果您需要在函数中获取任何 dom 元素,您可以这样做:

document.getElementById('@Html.IdFor(model => model.Draw)')

于 2014-12-09T18:11:18.553 回答