1

今夜私を悩ませている簡単な質問があります... 私は ASP.NET MVC4 + Razor アプリケーションを持っています。ユーザーがラジオ ボタンをクリックすると、モデルのフィールド「Timezone」から文字列値を JavaScript 関数である onclick ハンドラに渡したいと思います。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

関数内の dom 要素を取得する必要がある場合は、次のようにします。

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

于 2014-12-09T18:11:18.553 に答える
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 に答える