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

ASP.NET MVCフレームワークは、Webアプリケーション向けに調整され、ASP.NETテクノロジーの基盤に基づいて構築されたモデルビューコントローラー(MVC)パターンのバージョンを実装するオープンソースのWebアプリケーションフレームワークおよびツールです。

4
「RedirectToAction」を使用してコントローラからハッシュにリダイレクトします
こんにちはMvcコントローラーからアンカーを返したい コントローラー名= DefaultController; public ActionResult MyAction(int id) { return RedirectToAction("Index", "region") } インデックスに向けられたときのURLが http://localhost/Default/#region そのため <a href=#region>the content should be focus here</a> 次のようにできるかどうかは尋ねていません。URLにアンカータグを追加するにはどうすればよいですか。

6
ActionNameの目的
「ActionName」属性を使用してアクションメソッドのエイリアスを設定する利点は何ですか?他の名前でアクションメソッドを呼び出すオプションをユーザーに提供するという点で、実際にはあまりメリットがありません。エイリアスを指定した後、ユーザーはエイリアスを使用してのみアクションメソッドを呼び出すことができます。しかし、それが必要な場合、ユーザーがアクションメソッドのエイリアスを指定するのではなく、アクションメソッドの名前を変更しないのはなぜですか? 「ActionName」が大きなメリットをもたらす、または使用するのが最善のシナリオでの「ActionName」の使用例を誰かに教えていただければ幸いです。

4
AngularとASP.NETMVC / Web APIを混在させていますか?
ASP.NET MVC / Web APIを使用しているので、Angularを使い始めましたが、それらを適切に混合する方法がわかりません。 Angularを使用した後でも、MVCサーバー側の概念は価値を提供しますか?または、Angular HTTP呼び出しのデータを取得するためだけにWebAPIを厳密に使用する必要がありますか? ASP.NETMVCの人がAn​​gularに移行するためのヒントがあれば役に立ちます

10
キー「xxx」を持つタイプ「IEnumerable <SelectListItem>」のViewDataアイテムはありません。
Stack Overflowにはこれに関する投稿がいくつかありますが、私の現在の状況で問題を解決しているように見える答えはありません。 テーブルのあるページがあり、各行にはいくつかのテキストフィールドとドロップダウンがあります。すべてのドロップダウンで同じSelectListデータを使用する必要があるため、次のように設定しました。 コントローラ ViewData["Submarkets"] = new SelectList(submarketRep.AllOrdered(), "id", "name"); 見る &lt;%= Html.DropDownList("submarket_0", (SelectList)ViewData["Submarkets"], "(none)") %&gt; 私は多くの場所でこの設定を正確に使用しましたが、この特定のビューで何らかの理由でエラーが発生します: キー「submarket_0」を持つタイプ「IEnumerable」のViewDataアイテムはありません。

4
POSTアクションでビューモデルをドメインモデルにマップする方法は?
ViewModelsの使用とAutomapperの利用に関するインターネット上のすべての記事には、「コントローラー-&gt;ビュー」方向マッピングのガイドラインが記載されています。ドメインモデルとすべての選択リストを1つの特殊なViewModelに取り込み、それをビューに渡します。それは明らかで問題ありません。 ビューにはフォームがあり、最終的にはPOSTアクションになります。ここでは、すべてのモデルバインダーが、少なくともバインドと検証のための命名規則の一部で、元のViewModelに[明らかに]関連している[明らかに]別のビューモデルとともにシーンに登場します。 それをドメインモデルにどのようにマッピングしますか? 挿入アクションとすると、同じオートマッパーを使用できます。しかし、それが更新アクションだった場合はどうなりますか?リポジトリからドメインエンティティを取得し、ViewModelの値に従ってそのプロパティを更新して、リポジトリに保存する必要があります。 補遺1(2010年2月9日):モデルのプロパティを割り当てるだけでは不十分な場合があります。ビューモデルの値に従って、ドメインモデルに対して何らかのアクションを実行する必要があります。つまり、ドメインモデルでいくつかのメソッドを呼び出す必要があります。おそらく、ビューモデルを処理するために、コントローラーとドメインの間にある一種のアプリケーションサービスレイヤーが必要です... 次の目標を達成するために、このコードを整理する方法と配置する場所を教えてください。 コントローラを薄く保つ SoCの実践を尊重する ドメイン駆動設計の原則に従う 乾く つづく ...

3
ActionLink htmlAttributes
WORKS &lt;a href="@Url.Action("edit", "markets", new { id = 1 })" data-rel="dialog" data-transition="pop" data-icon="gear" class="ui-btn-right"&gt;Edit&lt;/a&gt; 動作しない-なぜですか? @Html.ActionLink("Edit", "edit", "markets", new { id = 1 }, new {@class="ui-btn-right", data-icon="gear"}) data-icon = "gear"のようなものをhtmlAttributesに渡すことができないようですか? 提案?

3
すべてのエリアで同じレイアウトを使用するように強制します
私は次のプロジェクト構造を持っています: / Views / Shared / _Layout; / Areas / Area1 / Views / ControllerName / Index; ..。 / Areas / AreaN / Views / ControllerName / Index。 すべての領域に_Layoutを基本レイアウトとして使用するように強制する方法はありますか? _ViewStartファイルを追加せずに(たとえば、ルーティング構成を介して)それを行う方法はありますか? 関連項目: ASP.NET MVC 3かみそりViewStartファイルでさまざまなレイアウトを指定するにはどうすればよいですか?


4
モデルのList <Object>からのDisplayNameFor()
これは非常に簡単だと思います。モデル内のリスト内のアイテムの表示名を表示する正しい方法が見つからないようです。 私の簡略化されたモデル: public class PersonViewModel { public long ID { get; set; } private List&lt;PersonNameViewModel&gt; names = new List&lt;PersonNameViewModel&gt;(); [Display(Name = "Names")] public List&lt;PersonNameViewModel&gt; Names { get { return names; } set { names = value; } } } と名前: public class PersonNameViewModel { public long ID { get; set; …
87 c#  asp.net-mvc  razor  model 

3
ディクショナリに渡されるモデルアイテムのタイプは..ですが、このディクショナリにはタイプのモデルアイテムが必要です
この質問とコミュニティウィキの回答は、このメタ投稿で説明されているように、多数の未回答の質問を閉じるのに役立つように追加されました。 私はいくつかのコードを持っています、そしてそれが実行されるとき、それは言う例外を投げます: ディクショナリに渡されるモデルアイテムはタイプBarですが、このディクショナリにはタイプFooのモデルアイテムが必要です。 これはどういう意味ですか、どうすれば修正できますか?
87 c#  asp.net-mvc 

3
テキストボックスにラベルではなく値を適用するオートコンプリート
オートコンプリートを正しく機能させるのに問題があります。 それはすべて私には大丈夫に見えますが.... &lt;script&gt; $(function () { $("#customer-search").autocomplete({ source: 'Customer/GetCustomerByName', minLength: 3, select: function (event, ui) { $("#customer-search").val(ui.item.label); $("#selected-customer").val(ui.item.label); } }); }); &lt;/script&gt; &lt;div&gt; &lt;input id="customer-search" /&gt; &lt;/div&gt; @Html.Hidden("selected-customer") ただし、ドロップダウンからアイテムを選択すると、ラベルではなくテキストボックスに値が適用されます。 私は何を間違えましたか? firebugを使用してソースを見ると、非表示フィールドが正しく更新されていることがわかります。

2
ASP.NET MVC5とAngularJS / ASP.NET WebAPI [クローズ]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前に閉鎖されました。 この質問を改善する 私は現在、会社で将来のWebアプリケーションを作成するためのプログラミングモデルを評価しています。そこで、ASP.NET MVC 5(Razor Viewsを使用)とASP.NETWebAPIを使用したAngularJSのどちらかを決定します。これら2つのプログラミングモデルの長所/短所は何ですか?


4
「ビジネスロジックレイヤー」はMVCアプリケーションのどこに適合しますか?
まず、誰かがだまされて叫ぶ前に、私はそれを簡単なタイトルに要約するのに苦労しました。別のタイトルは「ドメインモデルとMVCモデルの違いは何ですか?」だったかもしれません。または「モデルとは何ですか?」 概念的には、モデルはビューとコントローラーによって使用されるデータであると理解しています。それを超えて、モデルを構成するものについては多くの異なる意見があるようです。ドメインモデル、アプリモデル、ビューモデル、サービスモデルなどとは何ですか。 たとえば、リポジトリのパターンについて最近尋ねた質問で、リポジトリはモデルの一部であると空白で言われました。ただし、モデルを永続性モデルおよびビジネスロジック層から分離する必要があるという他の意見を読みました。結局のところ、リポジトリパターンは、具体的な永続化メソッドをモデルから切り離すことになっているのではないでしょうか。ドメインモデルとMVCモデルには違いがあると言う人もいます。 簡単な例を見てみましょう。MVCデフォルトプロジェクトに含まれているAccountController。含まれているアカウントコードの設計が不十分である、SRPに違反しているなど、いくつかの意見を読みました。MVCアプリケーションの「適切な」メンバーシップモデルを設計する場合、それは何でしょうか。 ASP.NETサービス(メンバーシッププロバイダー、ロールプロバイダーなど)をモデルからどのように分離しますか?それともあなたはまったく? 私の見方では、モデルはおそらく検証ロジックを備えた「純粋」である必要がありますが、ビジネスルール(検証以外)から分離する必要があります。たとえば、新しいアカウントが作成されたときに誰かにメールを送信する必要があるというビジネスルールがあるとします。それは私の見解では実際にはモデルに属していません。それで、それはどこに属しますか? この問題に光を当てる気がある人はいますか?

7
リポジトリパターンを正しく使用するにはどうすればよいですか?
リポジトリをどのようにグループ化する必要があるのでしょうか。asp.net mvcや私の本で見た例のように、基本的にデータベーステーブルごとに1つのリポジトリを使用します。しかし、それは多くのリポジトリのように思われるため、後でモックなどのために多くのリポジトリを呼び出す必要があります。 だから私はそれらをグループ化する必要があると思います。ただし、それらをグループ化する方法がわかりません。 今、私はすべての登録を処理するための登録リポジトリを作成しました。ただし、更新する必要があるテーブルが4つあり、これを行うために3つのリポジトリがあります。 たとえば、テーブルの1つはライセンステーブルです。彼らが登録するとき、私は彼らの鍵を見て、データベースに存在するかどうかを確認します。登録以外の場所で、このライセンスキーまたはそのテーブルの何かを確認する必要がある場合はどうなりますか? 1つの場所はログインである可能性があります(キーの有効期限が切れていないかどうかを確認してください)。 それで、私はこの状況で何をしますか?コードを書き直します(DRYを破ります)?これらの2つのリポジトリを一緒にマージして、他の時点でメソッドが不要になることを期待してください(userNameが使用されているかどうかをチェックするメソッドがあるかもしれませんが、別の場所で必要になるかもしれません)。 また、それらをマージする場合、サイトの2つの異なる部分のすべてのロジックが長くなり、ValidateLogin()、ValdiateRegistrationForm()のような名前が必要になるため、同じリポジトリに2つのサービスレイヤーを配置する必要があります。 、ValdiateLoginRetrievePassword()など。 または、とにかくリポジトリを呼び出して、奇妙な名前を付けますか? アプリケーションの多くの場所で使用できるように、十分に一般的な名前のリポジトリを作成するのは難しいようですが、それでも意味があります。リポジトリ内の別のリポジトリを呼び出すことは良い習慣ではないと思いますか?

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