問題タブ [asp.net-mvc-partialview]
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.
asp.net-mvc - ASP.Net MVC:コレクション内のオブジェクトのHtml.Display()
適切なビューテンプレートを使用してアイテムを描画するための標準のMVCの例は次のとおりです。
Html.DisplayFor(m => m.Date)
ModelオブジェクトにDateTime型のDateという名前のプロパティがある場合、これはDisplay/DateTime.ascxテンプレートからHTMLを含む文字列を返します。
同じことをしたいが、強く型付けされたバージョンを使用できなかったとします。コンパイル時に、このビューのモデルの型がわかりませんでした。古いものを使用します:
Html.Display( "日付");
だからここに難しい部分があります。
モデルがIEnumerableであると仮定します。これらのオブジェクトがコンパイル時に何であるかはわかりませんが、実行時には、次のように、DateがDateTime型のオブジェクトになります。
ここで、ビューでこれらのオブジェクトを反復処理し、それぞれをレンダリングするとします。あなたが気にかけているのがあなたがこれをすることができる価値だけであるならば:
私は明らかに、この例に焦点を合わせ続けるためにいくつかの近道を取っています。
ここにポイントがあります-自分で書いたTODOをどのように実行しますか?値を取得したいだけではありません。Html.Display( "Date")のように適切にフォーマットしたいのです。しかし、Html.Display( "Date")を呼び出すだけで、IEnumerableであるModelを調べて、もちろん持っていないDateという名前のプロパティを探します。Html.Displayは、モデルとして使用する引数としてオブジェクトを取りません(Html.Display(obj、 "Date"など)。その下にあるすべてのクラスとメソッドは内部にあるように見えるので、'微調整して直接呼び出します。
私がやろうとしていることを達成するための簡単な方法があるはずですが、それを見つけることができないようです。
明確にするために、DateTime.ascxのコードの例を次に示します。
したがって、理想的には、任意のモデルを取得できるこのビューからの出力ですが、この場合、上記のこれらのModelClassオブジェクトの3つのリストは次のようになります。
2001年11月10日2002年11月10日2003年11月10日
コードはDateTimeのDisplayPartialViewを見つけて、それぞれに適切にレンダリングするためです。
では、どうすればTODOを実行できますか?
asp.net - 部分的な ASP.NET MVC ビューの送信
ASP.NET MVC は初めてなので、質問が「ばかげている」ように見えるかもしれません。申し訳ありません。
ホームビュー内に部分ビューがあります。
部分ビューは、HomeController 内のアクション メソッドを呼び出すフォームを送信します。
サーバー検証で問題なく動作します。問題は、投稿後に部分ビューのみがレンダリングされることです。
投稿後にホームビュー全体をレンダリングするにはどうすればよいですか?
コードについて:
PartialView 内には次のフォームがあります。
Request は、HomeController 内で定義された ActionResult です。
この時点で、投稿後、ascx はサーバー検証エラーを示しますが、PartialView ascx コードのみがレンダリングされます。投稿後の URL は次のようになります。
私が欲しいのは、サーバー検証エラーを示す ascx を含むホームビュー全体を表示することです。
asp.net-mvc - ASP.NET MVCの部分ビューの正しい場所はどこですか?
誰かがASP.NETMVCの部分ビューに最適な場所を確認しますか?
私の考えは、それが多くの場所で使用されるグローバルなビューであるかどうか、そして共有されるかどうかです。
コードを読みやすくするために部分的なビューにラップされたビューの一部である場合は、Views/Controllerディレクトリに移動する必要があります
私は正しいですか、それとも何かが足りませんか?
jquery - MVC 2 アプリケーションの PartialView でモデルを渡しますか?
View に jQuery によって読み込まれる PartialView が含まれるタイムシート アプリケーションがあります。メイン ビューと PartialView は、異なるモデル タイプで厳密に型指定されています。
データをロードするためにすべてが正常に機能します。それぞれのモデルからのデータは、メイン ビュー (すべての顧客とタスクを含むドロップダウン リスト) と PartialView (記録された時間の入力フィールドを含む特定の作成されたタスク) に読み込まれます。
ただし、モデルがデータベースを更新できるように、PartialView (フォームを含む) を送信する必要があります。通常、MVC バインディングの単純さは、モデルのプロパティがビュー内のフィールドにバインドされ、モデルを送信してから保存できることです。しかし、ここではうまくいきません。まず、データを取得するために必要だったのと同じように、jQuery で PartialView を送信する必要もあるようです。送信入力フィールドを使用するだけでは、PartialView だけが返されるためです (返されるとページ全体が占有されます)。だから私はこれをしました:
savehours ボタンをクリックすると、次のようになります。
そしてコントローラーで:
私のコメントが示すように、PartialView のフィールドにバインドされたモデルにアクセスできるかどうかを単純な文字列でテストしましたが、アクセスできませんでした。
モデルを View に渡す代わりに ViewData を使用し、代わりにフィールドを ViewData にバインドしようと考えています。それがうまくいくかどうかはわかりませんが、現時点ではそれが私の唯一のアイデアです。それとも、ここで何か間違ったことをしていますか? 私がやろうとしていたことをすることは可能であるべきですか?
database - MVC 2 <% HTML BEGIN FORM %> が部分ビューと衝突する
私は会社の MVC 2 vb プロジェクトを行っています。model.edmx を介してデータベース テーブルを取得するために次のコードが使用されています。データを含めるために個別の部分ビューを実装した複数のタブがあります。ページを見る
コントローラーページ
ここに問題があります。「送信」ボタンをクリックすると、「_db.ApplyCurrentValues(itin.EntityKey.EntitySetName, Itinerary)」を参照するエラーが表示され、「旅程」がnullで更新できません。
これは、「Itinerary」が BkgEntry 事後関数に渡されなかったためです。パックスとビルができたのとは異なり。私はいくつかの方法を試しましたが、複数の部分フォームが <%Html Begin form%> と衝突してビューでエラーが発生したためかどうか疑問に思いました。もしそうなら、どうすれば解決できますか?
jquery - 複雑なモデルで部分ビューを検証しますか?
jQuery で PartialView をロードするタイムシート アプリケーションがあります。すべて正常に動作しますが、入力を検証する方法がわかりません。以前と同じようにやろうとしましたが、うまくいきません:
この PartialView は jQuery を使用して読み込まれますが、アクション メソッドに送信する送信ボタンも含まれています。
私は Entity Framework を使用しているため、次のようにモデルを DataAnnotations で装飾する必要があることを読みました。
したがって、ここで [時間] に入力された 0 から 24 までの数値であることを確認したいと思います。(intであることも確認したいのですが、まだそれには至っていません。最初に検証を機能させる必要があります)
これは機能しません。何が間違っていますか? PartialView に for ループを含む複雑なモデルがあるため、これを行うことはできませんか?
また、ある種の厳密なjQuery検証を見つけようと考えていました(これにはjQueryプラグインが存在するのを見てきました)が、PartialView内でjQueryを使用する方法がわかりません。document.ready 関数がメイン (親) ビュー内にあるときに jQuery を実行するにはどうすればよいのでしょうか? ユーザーが入力フィールドを選択した場合に後でできるようにしたいので、とにかくこれが必要です...
PS:私はまだjQueryとMVCの両方にかなり慣れていないので、何が間違っているのかについて明確な指針をいただければ幸いです...ありがとう!
asp.net-mvc - ASP.NET MVC 3 で拡張可能な部分出力キャッシュを使用する方法
どのビューでもExtensible Output Caching .NET 4を使用しても問題はありません。しかし、部分ビュー (RenderAction) の出力キャッシュ (ディスク上) を拡張することはできません。
asp.net-mvc-2 - asp.net mvc ViewData
一部のデータをPartialViewに解析する際に問題が発生しました。ディクショナリで解析する場合、プロパティの値とキーはViewDataで設定されます...ディクショナリをViewDataとマージするには...次のようなキーを使用してディクショナリアイテムにアクセスできます。
それ以外の
私はそれをこのように使用するつもりです...匿名/マジックストリング名は必要ありません。
私はこのようなことをしたいと思っています。<%:Html.EditorFor(x => x.GroupId、 "SimpleSelectList"、Html.AddViewData(Model.List))%>
この拡張メソッドを使用すると、次のようになります。
そうすれば、SimpleSelectListテンプレートが何を探すべきかを常に知ることができます...そしてまた別のマジックストリングに依存する必要はありません...
または、人々はこれをどのように行うのですか?コードベースに侵入しようとしているだけで、人々はこの種のことをどのように行っているのか...
.net - 異なるビューモデルを継承した部分ビュー
ViewModelBase を使用した MVC2 プロジェクトがあります。masterPage によって呼び出される PartialView があります。
この PartialView も PartialView を呼び出します。
この最後の PartialView には、 ViewModelBase を継承する ViewModelBannerFront が必要です。
継承で問題ないと思ったので、コントローラにViewModelBannerFrontを設定しました:
このアクションは、マスターページに含まれるビュー (ヘッダーのパーシャルビューなどを含む) を呼び出します。
タイプエラーがあります。助けてもらえますか? 最後の PartialView で ViewModelBannerFront を渡すにはどうすればよいですか? 前もって感謝します
asp.net-mvc - ASP .NET MVC - 部分ビューの作成は、'作成' ではなく、'編集' アクション結果に対してのみ機能します。
モデルの「編集」ビューで使用する部分ビューを作成しました。レコードを正常に編集できますが、「作成」ビューの部分ビューを使用すると、null 参照例外が発生します。
これは私の部分的な見解です:
そして POST ActionResult:
GET 作成:
有効な値を入力/選択すると、フォームの送信により、Visual Studio が終了し、部分ビューで見つかった「DropDownList」が「NullReferenceException was unhandled」で終了します。
null エラーの原因を特定するにはどうすればよいですか? (私はMVCが初めてです)
UPDATE : エラーは、コントローラーの [HttpPost] Create メソッドに関連しているようです。モデル内のフィールドの 1 つと同じ名前を使用して入力クラスに名前を付けていました...これは、null 参照例外でプログラムを壊したようです。