2

Razorビューで、次のようなものがあると仮定します。

@Html.HiddenFor(model => model.Värde)

ここで、「Värde」はスウェーデン語で「Value」を意味します。「ä」が含まれていることに注意してください。このため、Razorは次のようなHTMLを生成します。

<input id="V_rde" name="Värde" type="hidden" />

要素のIDは、「Värde」ではなく「V_rde」であることに注意してください。

では、getElementByIdを使用してJavaScriptからこの要素にアクセスするにはどうすればよいですか?'V_rde'を使用できることは理解していますが、 "Värde"だけでなく、次のような一般的に機能するものが必要です(htmlAttributesパラメーターを意味します)。

@Html.Whatever(..., new { onclick = "JavaScript:alert(document.getElementById('@Html.IdFor("Värde")'));" })

@ Html.IdFor(string name)で、ラベル、チェックボックス、エディットボックスなどの@HtmlヘルパーでIDが変換されるのとまったく同じように名前を変換したい場合。

4

2 に答える 2

4

その間@Html.IdFor(x=>x.YourProperty)にMVCになりましたが、これは今では簡単な解決策だと思います

于 2013-12-17T10:05:35.337 に答える
1

これは機能しますか?

@HtmlHelper.GenerateIdFromName("originalName")

HtmlHelperもしそうなら、ラムダ式をとる独自の拡張機能を簡単に作成できます。

于 2012-06-13T20:14:52.407 に答える