e?を使用してコントローラーでアクションメソッドが使用できない場合に、コンパイル時エラーが発生する可能性がある方法はありますHtml.Action
か?
たとえば、という名前のコントローラーがあり、そのようなコントローラー内に、次の場所にあるヘッダー部分ビューを出力LayoutMainPartialViewsController
するメソッドがあるとします。Header
/Views/Shared/PartialViews/_Header.cshtml
public class LayoutMainPartialViewsController : Controller
{
//
// GET: /LayoutMainPartialViews/
public ActionResult Header()
{
return PartialView("/Views/Shared/PartialViews/_Header.cshtml");
}
}
次に、そのような部分的なビューを含めるために、Razor内で呼び出します
@Html.Action("Header", "LayoutMainPartialViews");
何らかの理由で、指定されたメソッドの名前Header
がに変更されたHeader2
場合、コンパイル時エラーは発生せず、実行時エラーのみが発生します。
コンパイル時のエラーを発生させて、実行時のエラーを特定するのがはるかに難しいため、可能な限り最小限に抑えたいと考えています。
別の注意点として、次のようなものを呼び出すのは理にかなっていますか?
@(new LayoutMainPartialViewsController().Header())
上記のメソッドはActionResult
、同じ方法で文字列として変換する必要があるを返しますHtml.Action
。
このように、csprojに変更Header
しHeader2
て持っていると、コンパイル時にエラーが発生します。<MvcBuildViews>true</MvcBuildViews>