タグ付けされた質問 「razor」

Razorは、ASP.NET WebページとASP.NET MVC(バージョン3以降)で使用されるテンプレート言語です。HTML生成の上に抽象化のレイヤーを追加します。HTMLマークアップとC#またはVBコード間のシームレスな移行をサポートします。マークアップとコード間の遷移は、「@」記号で示されます。

3
Razor MVC3を使用した条件付きHTML属性
変数strCSSClassには値が含まれることがよくありますが、空の場合もあります。 この入力要素のHTMLに空のclass = ""を含めたくありません。つまり、strCSSClassが空の場合、class =属性はまったく必要ありません。 以下は、条件付きHTML属性を実行する1つの方法です。 <input type="text" id="@strElementID" @(CSSClass.IsEmpty() ? "" : "class=" + strCSSClass) /> これを行うよりエレガントな方法はありますか?具体的には、要素の他の部分で使用されているものと同じ構文に従うことができる1つ:class = "@ strCSSClass"?

4
Razorは閉じられていないhtmlタグを理解しません
RazorViewEngineで、これを行うことができます: if (somecondition) { <div> some stuff </div> } しかし、私はこれを行うことができないようです(Razorは混乱します): if (somecondition) { <div> } if (someothercondition) { </div> } 開始と終了のhtmlタグを別のコードブロックに配置する必要がある状況があります-Razorでこれを行うにはどうすればよいですか?

11
ASP.NET MVC 3:「名前」属性をTextBoxForでオーバーライドする
を使用Html.TextBoxForしてname属性をオーバーライドすることは可能ですか? 私は成功しませんでした。クライアント側の検証を機能させるにはTextBoxForを使用する必要がありますが、理由はわからないので、生成されたものとは異なるテキストボックスの名前を指定する必要があります。 私は以下を試しました: @Html.TextBoxFor(x => x.Data, new { name = Model.Key + "_Data", id = Model.Key + "_Data" }) これはIDでは機能しますが、名前では機能しません。これは可能ですか? 更新:TextBoxForのコードを調べます。簡単な方法はないようです。うまくいけば、誰かが私を間違っていると証明することができます。

7
Razor MVC JavaScript配列にモデル配列を追加する
モデルの配列を含むJavaScript配列をロードしようとしています。これは可能であるように思えます。 以下の方法はどちらも機能しません。 JavaScriptループを作成して、JavaScript変数を含むモデル配列を介してインクリメントすることはできません for(var j=0; j<255; j++) { jsArray = (@(Model.data[j]))); } Razorループを作成できません。JavaScriptはスコープ外です @foreach(var d in Model.data) { jsArray = d; } 私はそれを動作させることができます var jsdata = @Html.Raw(Json.Encode(Model.data)); しかし、なぜJSONを使用する必要があるのか​​わかりません。 また、現時点では、これを255バイトに制限しています。将来的には、多くのMBに実行される可能性があります。

3
レイアウトの使用時にビュー内にスクリプトsrcを追加する方法
私は次のようなjavascriptリファレンスを含めたいです: <script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script> かみそりビューがある場合、レイアウトに追加せずにこれを含める適切な方法は何ですか(すべてではなく単一の特定のビューでのみ必要です) aspxでは、コンテンツプレースホルダーを使用できます。mvcでaspxを使用していて、Razorビューでは使用していない古い例を見つけました。

3
403を与えるMVC4スタイルのバンドル
バンドル/縮小が有効になっている場合、一部のバンドルはブラウザーに無効なURL(/で終わる)が含まれているように見え、IISはフォルダーの内容を一覧表示しようとしているかのように403 forbiddenエラーを出します。 バンドルのセットアップ方法に違いはありません。それらは.min.cssではなく、アクセス許可は正しいなどです。


3
@ Html.BeginFormページに「System.Web.Mvc.Html.MvcForm」を表示
かみそりビューを使用して、 'if'ステートメント内に削除ボタンを追加しました。ビューがブラウザーでレンダリングされると、削除ボタンの横に"System.Web.Mvc.Html.MvcForm"が表示されます。 どうすれば取り除くことができますか? これがコードです: <div id="deletestatusupdate"> @if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase)) { @Html.BeginForm("deleteupdate", "home") @Html.Hidden("returnUrl", Request.Url.ToString()) <button name="id" value="@update.StatusUpdateId">Delete</button> } </div> 以下は、レンダリングされたRazorビューに表示される方法です。 System.Web.Mvc.Html.MvcForm [削除ボタン] [削除ボタン]は実際のボタンであるかのように振る舞い、スクリーンショットを撮る気にはなりませんでした。 ご協力ありがとうございました。

6
ASP.NET MVC Razor:コントローラーアクション内でRazorパーシャルビューのHTMLをレンダリングする方法
ASP.NETビューエンジンで特定の部分ビューのHTMLを生成する方法は既知です。 ただし、この機能がかみそり部分ビューで使用されている場合、例外は部分ビューが「UserControl」から派生しないことを示しているため、機能しません。 かみそり部分ビューをサポートするようにレンダリングを修正するにはどうすればよいですか? この部分的なビューから電子メールを生成するため、これが必要です... 更新: 失敗するコード(@mcl): public string RenderPartialToString(string controlName, object viewData) { ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() }; viewPage.Url = this.GetUrlHelper(); string fullControlName = "~/Views/Email/" + controlName + ".ascx"; viewPage.ViewData = new ViewDataDictionary(viewData); viewPage.Controls.Add(viewPage.LoadControl(fullControlName)); StringBuilder sb = new StringBuilder(); using (StringWriter sw = new …
97 c#  asp.net-mvc  razor 

19
null可能なブール値のチェックボックス
私のモデルにはnullにする必要があるブール値があります public bool? Foo { get; set; } 私のRazor cshtmlには @Html.CheckBoxFor(m => m.Foo) それが機能しないことを除いて。(bool)でキャストすることもできません。私が行った場合 @Html.CheckBoxFor(m => m.Foo.Value) エラーは発生しませんが、投稿時にモデルにバインドされず、fooがnullに設定されます。ページにFooを表示し、投稿のモデルにバインドする最良の方法は何ですか?

20
「ViewBag」という名前は現在のコンテキストに存在しません-Visual Studio 2015
私は再びASP.NETで開発を始めており、Visual Studio内で小さなエラーに遭遇しました。いくつかのかみそり機能を使用すると、.cshtmlファイルにエラーが表示されます。たとえば、「名前 'ViewBag'は現在のコンテキストに存在しません」などです。ここに写真があります: デモプロジェクトを使用しています。ここでプロジェクトを見つけることができます:https : //github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject 私は他のいくつかのスレッドを調べましたが、ほとんどはweb.configファイルを更新することをお勧めします。これらの2つの構成ファイルはすでに存在しており、かなり人気のあるデモなので、必要な構成がすべて含まれていると思います。もちろん、これらの構成ファイルを調べましたが、実際には推奨されるソリューションが含まれています。 その他の詳細: 私はすでにソリューションでクリーン&リビルドを使用しましたが、何も変わりませんでした。 完全に新しいMVCプロジェクトを作成すると機能します 私の友人にも同じ問題があり、私たちはどちらもVS 2015とWindows 10を使用しています 私はまだアプリケーションを実行でき、それは機能します。 前もって感謝します。

13
Html.DropdownListFor選択された値が設定されていません
Html.DropDownListForの選択した値を設定するにはどうすればよいですか?私はオンラインで見てきましたが、次のように4番目のパラメーターを使用することでそれを実現できることを確認しました。 @Html.DropDownListFor(m => m, new SelectList(Model, "Code", "Name", 0), "Please select a country") 私の選択リストは次のように表示されます: <select id="ShipFromCountries" name="ShipFromCountries"> <option value="">Please select a country</option> <option value="GB">United Kingdom</option> <option value="US">United States</option> ... </select> でもなんらかの理由でイギリスが選ばれたままですが、「国を選んでください」を選んで欲しいです。 誰でも私がこれを達成する方法を知っていますか? 編集する 機能にわずかな変更があったため、コードを更新しましたが、まだこの問題が発生しているようです。これは私の見解です: @Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, "OrderTemplateId", "OrderTemplateName", 1), "Please select an order template") 1option選択したいのIDです。テキストも試してみましたが、optionこれも機能しません。 何か案は?

4
RazorでのHtml.RenderPartial()構文
これは、部分的なビューのレンダリング結果を文字列で返すため、機能します。 @Html.Partial("Path/to/my/partial/view") しかし、私は使用することを好みRenderPartial、それを書く必要があるようです: @{Html.RenderPartial("Path/to/my/partial/view");} の代わりに: @Html.RenderPartial("Path/to/my/partial/view"); それを機能させるために。エラーメッセージ: Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments @{...}1回のメソッド呼び出しだけでコードブロックを開く代わりに、より良い方法があるかどうか。

6
ASP.NET MVCかみそり連結
Razorビューエンジンを使用して、次のようなHTMLリストをレンダリングしようとしています。 <ul> <li id="item_1">Item 1</li> <li id="item_2">Item 2</li> </ul> このリストをレンダリングするために使用しようとしているコードは次のとおりです。 <ul> @foreach (var item in Model.TheItems) { <li id="item_@item.TheItemId">Item @item.TheItemId</li> } </ul> パーサーが窒息しているのは、id属性のアンダースコアの右側にあるものはすべてプレーンテキストであり、解析すべきではないと考えているためです。パーサーにTheItemIdをレンダリングするように指示する方法がわかりません。 私はしたくないのですが、item_接頭辞を含むモデルオブジェクトのプロパティです。 また、JQuery Sortableと、この構文でid属性をフォーマットする必要があるserialize関数でリストを使用しているため、この構文を維持する必要があります。

6
MVC Razorビューのネストされたforeachモデル
一般的なシナリオを想像してみてください。これは私が遭遇しているもののより単純なバージョンです。実際、私はさらにいくつかのネストを重ねています... しかし、これはシナリオです テーマはリストを含むカテゴリーはリストを含む製品はリストを含む 私のコントローラーは、完全に入力されたテーマを提供し、そのテーマのすべてのカテゴリー、このカテゴリー内の製品、およびその注文が含まれます。 注文コレクションには、(他の多くの中で)数量と呼ばれる編集可能である必要があるプロパティがあります。 @model ViewModels.MyViewModels.Theme @Html.LabelFor(Model.Theme.name) @foreach (var category in Model.Theme) { @Html.LabelFor(category.name) @foreach(var product in theme.Products) { @Html.LabelFor(product.name) @foreach(var order in product.Orders) { @Html.TextBoxFor(order.Quantity) @Html.TextAreaFor(order.Note) @Html.EditorFor(order.DateRequestedDeliveryFor) } } } 代わりにlambdaを使用すると、最上位のModelオブジェクトへの参照のみを取得しているように見えます。「テーマ」は、foreachループ内のものではありません。 私がそこでやろうとしていることは可能ですか、それとも可能なことを過大評価または誤解していますか? 上記で、TextboxFor、EditorForなどでエラーが発生します CS0411:メソッド 'System.Web.Mvc.Html.InputExtensions.TextBoxFor(System.Web.Mvc.HtmlHelper、System.Linq.Expressions.Expression>)'の型引数は、使用法から推測できません。型引数を明示的に指定してみてください。 ありがとう。

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