タグ付けされた質問 「asp.net-mvc-3」

ASP.NET MVC 3は、.NETフレームワークでWebアプリケーションを開発するためのModel-View-Controller拡張機能の3番目のメジャーバージョンです。

5
ASP.NET MVC 3-部分テンプレートvs表示テンプレートvsエディターテンプレート
そのため、タイトルはそれ自体が物語っています。 ASP.NET MVCで再利用可能なコンポーネントを作成するには、3つのオプションがあります(私が言及しなかった他のオプションも考えられます)。 部分図: @Html.Partial(Model.Foo, "SomePartial") カスタムエディターテンプレート: @Html.EditorFor(model => model.Foo) カスタム表示テンプレート: @Html.DisplayFor(model => model.Foo) 実際のビュー/ HTMLに関しては、3つの実装はすべて同じです。 @model WebApplications.Models.FooObject <!-- Bunch of HTML --> それで、私の質問は-いつ/どのようにして3つの中のどれを使うかを決めるのですか? 私が本当に探しているのは、作成する前に自問する質問のリストです。その回答を使用して、使用するテンプレートを決定できます。 ここに、EditorFor / DisplayForで私が見つけた2つの点があります。 HTMLヘルパーをレンダリングするときにモデル階層を尊重します(たとえば、「Foo」モデルに「Bar」オブジェクトがある場合、「Bar」のHTML要素は「Foo.Bar.ElementName」でレンダリングされますが、パーシャルは「 ElementName」)。 たとえばList<T>、ViewModelに何かがある場合は、を使用できます。MVCは、それが@Html.DisplayFor(model => model.CollectionOfFoo)コレクションであることを確認し、各項目の単一の表示をレンダリングするのに十分スマートです(Partialは、明示的なループ)。 DisplayForが「読み取り専用」テンプレートをレンダリングすることも聞いたことがありますが、理解できません-フォームをそこにスローできませんでしたか? 誰か他の理由を教えてもらえますか?3つを比較するリスト/記事はどこかにありますか?

12
ビュー内の複数のモデル
1つのビューに2つのモデルを表示したい。ページには、両方が含まれていますLoginViewModelとRegisterViewModel。 例えば public class LoginViewModel { public string Email { get; set; } public string Password { get; set; } } public class RegisterViewModel { public string Name { get; set; } public string Email { get; set; } public string Password { get; set; } } これら2つのViewModelを保持する別のViewModelを作成する必要がありますか? public BigViewModel …

8
ASP.NET MVC 3 RazorでのAjax.BeginFormの使用
Ajax.BeginForm控えめな検証とAjaxが存在するAsp.net MVC 3内で使用するチュートリアルまたはコード例はありますか? これはMVC 3のとらえどころのないトピックであり、フォームを適切に機能させることができないようです。Ajax送信を行いますが、検証エラーを無視します。

4
ReSharperが警告:「ジェネリック型の静的フィールド」
public class EnumRouteConstraint<T> : IRouteConstraint where T : struct { private static readonly Lazy<HashSet<string>> _enumNames; // <-- static EnumRouteConstraint() { if (!typeof(T).IsEnum) { throw new ArgumentException( Resources.Error.EnumRouteConstraint.FormatWith(typeof(T).FullName)); } string[] names = Enum.GetNames(typeof(T)); _enumNames = new Lazy<HashSet<string>>(() => new HashSet<string> ( names.Select(name => name), StringComparer.InvariantCultureIgnoreCase )); } public bool Match(HttpContextBase httpContext, …

1
Html5 data- * with asp.net mvc TextboxFor html属性
data-*TextboxForを使用してHTML属性を追加するにはどうすればよいですか? これは私が現在持っているものです: @Html.TextBoxFor(model => model.Country.CountryName, new { data-url= Url.Action("CountryContains", "Geo") }) ご覧のとおり、-ここで問題が発生していますdata-url。これはどうですか?

7
ASP.NET MVC Razorビューで改行文字を<br />に置き換えます
入力を受け入れるtextareaコントロールがあります。私は後でそのテキストを単にビューを使用してビューにレンダリングしようとしています: @ Model.CommentText これは値を適切にエンコードしています。しかし、改行文字を置き換えたいのです&lt;br /&gt;が、新しいbrタグがエンコードされないようにする方法が見つかりません。私はHtmlStringを使用してみましたが、まだ運がありません。

5
非静的メソッドにはターゲットが必要です
ローカルと本番環境の両方でFirefoxで正常に動作するコントローラーアクションがありますが、ローカルではIEですが、本番環境ではIEでは動作しません。これが私のコントローラのアクションです: public ActionResult MNPurchase() { CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"]; decimal OP = landTitleUnitOfWork.Sales.Find() .Where(x =&gt; x.Min &gt;= calculationViewModel.SalesPrice) .FirstOrDefault() .OP; decimal MP = landTitleUnitOfWork.Sales.Find() .Where(x =&gt; x.Min &gt;= calculationViewModel.MortgageAmount) .FirstOrDefault() .MP; calculationViewModel.LoanAmount = (OP + 100) - MP; calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850); return View(calculationViewModel); } IEで取得したスタックトレースは次のとおりです。 エラー。リクエストの処理中にエラーが発生しました。System.Reflection.TargetException:非静的メソッドにはターゲットが必要です。System.Reflection.RuntimeMethodInfo.Invoke(Object obj、System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)at …


4
@ Html.DisplayFor構文とは何ですか?
Razorでは、@ Htmlがリンクや入力などのHTMLを生成するなど、多くの優れた機能を実行することを理解しています。 しかし、DisplayFor関数を取得できません... なぜ私は書くでしょう: @Html.DisplayFor(model =&gt; model.Title) 私が書くことができたとき: @Model.Title

5
cshtmlテンプレートで関数を作成する方法は?
1つのcshtmlファイル内でのみ必要な関数を作成する必要があります。私の状況はASP.NETページメソッドと考えることができます。これは、1つのページにスコープが設定されているため、ページに実装された最小のWebサービスです。HTMLヘルパー(拡張メソッド)については知っていますが、私の関数は1つのcshtmlファイルで必要なだけです。ビュー内に関数シグネチャを作成する方法がわかりません。 注:私はRazorテンプレートエンジンを使用しています。

22
タイプまたは名前空間名が名前空間 'System.Web.Mvc'に存在しません
MVC3ソリューションの構築はうまくいきましたが、ブラウザーでエラーが発生しました: コンパイラエラーメッセージ:CS0234:タイプまたは名前空間名 'Html'が名前空間 'System.Web.Mvc'に存在しません(アセンブリ参照がありませんか?) Source Error: Line 25: &lt;add namespace="System.Web.Mvc" /&gt; Line 26: &lt;!--&lt;add namespace="System.Web.Mvc.Ajax" /&gt;--&gt; Line 27: &lt;add namespace="System.Web.Mvc.Html" /&gt; Line 28: &lt;add namespace="System.Web.Routing" /&gt; Line 29: &lt;add namespace="System.Web.WebPages" /&gt; 私はソリューション用のパケットをインストールNuGetし、すべてのプロジェクト用にセットアップしましたMVC3。MVC3ライブラリSystem.Web.Mvc.Ajaxなど が含まれていますSystem.Web.Mvc.Htmlか?エラーが発生するのはなぜですか? 参照フォルダーにSystem.Web.Mvcがあります Runtime version: v4.0.30319、 Version: 3.0.0.0 Web.config &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;!-- For more information on how to …
217 c#  asp.net-mvc-3 

3
@mediaメディアクエリとASP.NET MVCかみそり構文の衝突
Razorビューエンジンを使用してASP.NET MVCで実行する大規模なサイトを持っています。 サイト全体のすべての一般的なスタイリングを含む基本スタイルシートがあります。ただし、場合によっては、ページ固有のスタイル&lt;head&gt;があります。通常、これは1行または2行です。 私はCSSを&lt;head&gt;厳密に分離していないので特に好きではありませんが、1行または2行は、そのページに固有のものなので、別のファイルを添付して帯域幅を追加する必要はありません。 ページ固有のメディアクエリをに挿入したいの&lt;head&gt;ですが、メディアクエリが@記号と角かっこ{}を使用しているため、かみそりの構文と競合しています。 @section cphPageHead{ &lt;style&gt; /* PAGE SPECIFIC CSS */ ... @media only screen and (max-width : 960px) &lt;-- the @ symbol here is clashing! { ... } } &lt;/style&gt; } これを回避する方法はありますか?


4
ASP.NET MVC3-@ Html.EditorForを含むtextarea
ASP.NET MVC3アプリがあり、ニュースを追加するためのフォームもあります。VS2010がデフォルトビューを作成したとき、文字列データのテキスト入力しかありませんが、ニューステキストのtextareaが必要です。Razor構文でそれを行う方法。 テキスト入力は次のようになります。 @Html.EditorFor(model =&gt; model.Text)

8
ViewBag、ViewData、およびTempData
どんな体がいつ使うべきか説明できますか TempData ViewBag ViewData コントローラー1に値を設定する必要があるという要件があります。そのコントローラーはコントローラー2にリダイレクトし、コントローラー2はビューをレンダリングします。 私はViewBagを使用しようとしましたが、コントローラ2に到達するまでに値が失われます。 いつ使用するか、利点または欠点を知ることができますか? ありがとう

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.