問題タブ [html-helper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
242 参照

.net - どうすればいいですか?テーブルセルのHTMLヘルパーまたは他の方法で?

私はasp.netmvcを使用していますが、この問題に対処する方法がわかりません。データベースにテーブルがあり、そこにいくつかのフィールドがあります。

これでテーブルを生成したい。だから私は最初にテーブルと必要なものすべてを作成するhtmlヘルパーを作成しようとしましたが、維持するのが難しすぎて、実際にテーブルを見て別のものを追加できるようにしたいデザイナーにとって問題を引き起こしています必要に応じて、各行または列に追加します。

今、彼らが何かを必要としているなら、私は彼らのためにそれをhtmlヘルパーに追加しに行かなければなりません。したがって、機能しないだけで、スキャフォールディングを使用するhtmlテーブルに固執する方がよいでしょう。

今私の問題は、このデータベーステーブルの2つの列がスタイル設定に使用されていることです。

私がこのテーブルを持っているかもしれないように

したがって、font-colorの実際の色がそのデータベースから取得されることを確認してください。各行の色が異なる可能性があります。

ですから、これをうまく設定する方法がわかりません。

足場を使っているのでこんなことができるみたい

これはひどいように見えます(スパゲッティコード)そして私は別の方法があるべきだと思います。

それで、テーブルセルのhtmlヘルパーを作成する必要があるのではないかと思いました。しかし、私はそれを行う方法がわかりません。

最初はこのようなことをしました。Html.TableCell("test","a");最初のパラメータは「id」で、2番目はtdの「innertext」です。

しかし、これが非常に愚かで乱雑に見える非常に長いテキストである場合はどうなるかを考えました。

それで、beginフォームが行うことを実行して、usingステートメントなどに入れることができると思いましたが、usingステートメントを使用できるhtmlヘルパーを作成する方法がわかりません。

見栄えが良く、テーブルのように見えるこれを最適に作成する方法がわかりません。

ありがとう

0 投票する
3 に答える
1472 参照

c# - ASP.NET MVCのstring.FormatとTagBuilderの違いは何ですか?

ASP.NETMVCアプリケーション用のHtmlヘルパーファイルがあります。それらの大部分は、単にフォーマットされた文字列を返します。

これが私のフォーマットされた文字列ヘルパーの1つの例です:

上記と同じ結果が得られるTagBuilderバージョンは次のとおりです。

さて、私が読んでいる/MVCについて学んでいるいくつかのサイトは、実装の取り違えからです。TagBuilderメソッドを使用するものもあればstring.Format()、を使用するものもあり、両方を同じ意味で使用するものもあります。

TagBuilderlabelタグはかなり単純なので、このようなタグのクラスをインスタンス化するよりも、フォーマットされた文字列を返す方が「良い」でしょうか。

私は必ずしもパフォーマンスについて心配しているわけではありません。TagBuilderを選択する理由とフォーマットされた文字列を使用する理由について知りたいだけです。

悟りをありがとう!

0 投票する
1 に答える
528 参照

asp.net - ASP.NET MVC の現在のパスへのリンクをスキップまたは無効にする

RouteValueDictionary基本的に多くのリンクを受け取り、多くのリンクを返すヘルパーを書いています。現在のルート値へのリンクをスキップしたいと思います (例: へ/Products/Details/3のリンクがあってはなりません/Products/Details/3)。他の URL パラメーターがあれば無視します。

私が考えることができるのは、次のことを確認することです。

  • 宛先アクションとコントローラー名が null または現在のものと等しい。

  • 相互の宛先ルート値が定義されており、現在の値と同じであり、その逆も同様です。

より良い方法はありますか?

編集:

いくつかのコンテキスト: 私は多くのモデル、多くのコントローラー、多くのアクションを持っています。どこでも同じことを何度も何度も書くという考えは好きではないので、一般的な解決策をコーディングすることにしました: パーミッションを意識したアイコン リンク (ここでヒントを求めました)。

これで、メソッド、URL を取得するためのデリゲート、その他いくつかのものを持つPermissionAwareIconActionクラスができました。内部では、いくつかのメソッドを呼び出して、このすべてのものを含む を次のようなコードで埋めます。IconHasPermission()Global.asax.csActionTable

そしてもちろん、他の特定のアクションを追加するコード。

また、コントローラーのアクションを次のように装飾します。

ビュー内では、次のことを行います。

Index、およびのように、単一のオブジェクトに関連しないビュー

などのオブジェクトに関連するビューでDetails

このように、パーミッションは 1 つのクラスだけで定義されます。また、アクセス許可に基づいてリンクを表示または非表示にするコードは、ユーザーにアクションEditの表示を許可または禁止するコードと同じです。Edit

ほぼ完了です (完了したら、以前の質問への回答を投稿し、行ったことを再開する予定です)。

今、私はまだこの小さな作業をしなければなりません。ビュー内のアイコン、ビュー内のDetailsアイコンなどを避けてください。DetailsIndexIndex

長文失礼します。

0 投票する
1 に答える
1391 参照

templates - EditorFor<> を使用してドロップダウン リストをレンダリングする

これまでのところ、Html.EditorFor() を使用して、データ型に適切なテンプレートを動的にレンダリングできます。たとえば、string、int、または「Address」などのカスタム型です。

ここで、EditorFor() を使用して「親」フィールドをレンダリングしたいと考えています。すべての行を含むドロップダウンが必要で、ユーザーはこのドロップダウンから親を選択します。

「Parent」テンプレートは「ParentID」にアクセスできますが、リスト ボックスに入力する行の名前と ID についてはどうでしょうか。

これらはどこから来るべきですか?

テンプレートにデータ アクセス ロジックを入れることはできますが、それは関心の分離に違反することになります。

リストをレンダリングする HtmlHelper を作成することもできますが、HtmlHelpers はデータ アクセスではなく UI のみを実行する必要があるため、これによって懸念事項の分離が損なわれることはありませんか?

何か案は?

0 投票する
1 に答える
2508 参照

c# - ASP.NET MVC でモデル データをオーバーライドするデータ ディクショナリを表示する

次のようにユーザーを作成するビューがあります。

「作成」ボタンをクリックすると、次のように「POST」動詞のみを受け入れる「SaveUser」というアクションに HTML フォームがポストされます。

ユーザーが保存された後、ページは "EditUser" ビューにリダイレクトされます。

ここに問題があります: 非表示フィールドの値はゼロとして表示され続けました。Model.Idはゼロより大きいです。他の何かがモデル ビューの値をオーバーライドしているようです。 ViewDataDictonary容疑者でした。そのため、次のように、アクションでビューを返す前に行が追加されます。

案の定、これはうまくいきました。非表示フィールドに正しいユーザー ID の値が含まれるようになりました。

症状を治療する方法を見つけましたが、問題の原因はどこにあるのでしょうか?

別のビューを返す前に毎回ビュー データ ディクショナリをクリアするという考えは好きではありません。

0 投票する
4 に答える
2526 参照

html - ASP.Net MVC での出力インデントの制御

私の同僚は、適切にフォーマットされ、インデントされた html がクライアント ブラウザに配信されることに非常に「熱中」しています。これは、人間がページのソースを簡単に読み取れるようにするためです。

まず、サイト内のさまざまな領域で使用される部分ビューがある場合、レンダリング エンジンは自動的にインデントをフォーマットする必要がありますか (XmlTextWriter の Formatting プロパティを設定します)。

次に、私の同僚は、応答に書き込むための多数の HtmlHelper 拡張メソッドを作成しました。これらはすべて CurrentIndent パラメータを渡す必要があります。これは私には間違ったにおいがします。

誰でもこれを手伝ってもらえますか?

0 投票する
1 に答える
1336 参照

c# - css クラス名を asp.mvc ビュー ヘルパーに渡す

ASP.NET MVC ビュー ヘルパーでは、次のようなことができます

次のHTMLが生成されます

私の質問は....「クラス」属性を設定したい場合はどうすればよいですか?

「クラス」は予約語であるため、コンパイルされません。

回避策はありますか?

0 投票する
3 に答える
2164 参照

asp.net-mvc - MVC DropDownLists で選択した値を永続化する

私は MVC を初めて使用しますが、すべてのドキュメント、すべての質問、見つけることができるすべてのブログ投稿を読んでいます。

「作成」アクションとビューを作成しようとしています。私のデータ入力は比較的単純で一般的です。ドロップダウン リストとテキスト ボックスがあります。私の場合は、ユーザーの連絡先チャネルを作成しています。ドロップダウン ボックスで電子メールとテキスト メッセージのどちらかを選択し、テキスト ボックスに適切な形式の電子メール アドレスまたは携帯電話番号のいずれかの関連する連絡先情報を入力します。

これが私のビューページの(少し簡略化された形式の)です:

ViewDataDictionary を使用するのではなく、厳密に型指定された ViewData モデルを使用しています。ChannelDescription 要素は SelectList であり、選択肢のリストで初期化され、選択はありません。

フォームの初期表示、フォームへのデータ入力、およびコントローラーによるフォームからのデータの抽出はうまくいきます。

私の問題は、データに不正な形式の電子メール アドレスや携帯電話番号などのエラーが含まれていて、ビューに戻る必要がある場合、ドロップダウン リストの選択を再表示することに成功していないことです。ChannelDescription 要素は、ユーザーの選択を選択項目としてコントローラーで再作成されます。ビューのその行にブレークポイントを設定し、項目リストの選択された要素の Selected プロパティが true に設定されていることを確認しましたが、デフォルトの「チャネルの選択」が表示されたままです。

これは非常に一般的な状況のようで、それほど難しいことではありません。私は何を間違っていますか?

参考までに、これは MVC 1.0 (リリース)、Windows 7、および VS 2008 で、Firefox 3.5.2 で実行されています。

0 投票する
1 に答える
3817 参照

asp.net-mvc - EditorForModel テンプレートをオーバーライドする

個々のタイプに代替テンプレートを提供できますが、ラベル、フィールド、および検証をラップするテンプレートをオーバーライドすることは可能です。

変化する:

に:

リッチ