1

これを手動で実行できることはわかっていますが、C# MVC Razor プロパティ名を、Razor が HTML ID として使用する値に変換する組み込み関数はありますか?

この質問を拡張するには:

部分ビューで JavaScript を使用して HTML 要素にアクセスしようとしています。(部分的なビューは、パラメーター名に直接アクセスできないことを意味します。)

次の 2 つの部分的な解決策では、ID が 2 倍になり、ParameterName_ParameterName が得られます。

string name = ViewData.TemplateInfo.HtmlFieldPrefix
@Html.Id(name)
@ViewData.TemplateInfo.GetFullHtmlFieldId(name)

私が現在行っている解決策:

Regex.Replace(name, @"[\.\[\]]", "_");

括弧を追加できると思います。

4

2 に答える 2

1

あなたのコメントによると:

私見では、その方法でモデルを使用するべきではありません。子オブジェクトにアクセスする必要がある場合は、新しいモデルを作成し、それを直接公開するモデルにバインドします。次に、コントローラーで、必要に応じて元のモデルを元に戻します。登録フォームの場合、非常に複雑な場合は、より小さな部分 (個別のビュー) に分割してみてください。それ以外の場合は、ユーザー名、パスワードなどのすべてのフィールドを組み合わせたフラット モデルを使用してから、適切なオブジェクトに値を割り当てます。

保守性が向上するため、複雑さを最小限に抑えることがより良い解決策であることに注意してください。

于 2013-10-16T15:33:48.880 に答える