6

私はasp.net mvc4が初めてで、よくわからないことがあります。

コントローラーのビューにオブジェクトを既に渡している場合、ビューの上部で @model を使用してモデルを宣言する必要があるのはなぜですか。

例を挙げる:

コントローラ:

public ActionResult countryDetails(int id)
    {

        Country country = db.Country.Find(id);
        return View(country);

    }

意見:

@model MvcApplication2.Models.Country
@{
    ViewBag.Title = "countryDetails";
}
...

コントローラーは、オブジェクトをパラメーターとして持つビューを返すため、モデルは既知である必要があります。明らかな場合は申し訳ありませんが、これが「二重」宣言ではない理由がわかりません。

助けてくれてありがとう!

4

3 に答える 3

7

上部の宣言は、次の 2 つのことを行います。

  • @Model を入力するとき、または Html ヘルパー拡張機能を使用するときに、使用している型をインテリジェンスが知ることができます。

  • また、渡されたモデルをビューが期待する型にキャストできることを実行時にチェックします。

メソッドのパラメーターに型を指定することに似ているため、必ずしも「二重宣言」ではありません。そのようです

Person Someone = new Person();
RenderView(Someone);
...
void RenderView(Person model) { }
于 2013-07-30T14:12:49.863 に答える
1

主な理由は型安全性です。これにより、intellisense、コンパイラ エラー ヒント、無効なキャストなどの利点を利用して、厳密に型指定されたビューを操作できます。

また、もう 1 つの理由は読みやすさです。これは、コントローラーを参照し続ける必要がなく、実際に扱っているモデルの種類を思い出させる役割を果たします。

于 2013-07-30T14:12:14.477 に答える