MVC 3のユーザービューコントロールにロジックを追加する方法は?
-
25-10-2019 - |
質問
User View Control
コードビハインドはありません。だから、どこで/どのようにするべきか events
要素の?
MVCのコントロールの論理を理解したい...
解決
MVCにはユーザーコントロールがないため、コントロールのロジックについて気にしないでください。 MVCにはポストバックはありません。 MVCにはViewStateはありません。 MVCにはイベントはありません。
モデルがあります:
public class MyViewModel
{
public string Name { get; set; }
}
モデルを操作するコントローラー:
public class HomeController: Controller
{
public ActionResult Index()
{
return View(new MyViewModel
{
Name = "John"
});
}
}
モデルに含まれるデータをレンダリングするビュー:
@model AppName.Models.MyViewModel
<div>@Model.Name</div>
ビューでコントローラーに何かを呼び出す必要がある場合、彼らはもはや郵便局やイベントを使用しません。彼らは、getリクエストを送信するためのアンカーリンクなどの標準のHTMLアーティファクトを使用します。
例:
@Html.ActionLink("click me", "Foo", new { param = "123" })
FOOコントローラーアクションの合格へのアンカーリンクを生成します param=123
クエリ文字列パラメーターとして:
<a href="/home/foo?param=123">click me</a>
そして次の:
@using (Html.BeginForm("Foo", "Home"))
{
@Html.TextBoxFor(x => x.Name)
<input type="submit" value="OK">
}
HTMLフォームを生成して、FOOコントローラーアクションに投稿できるようにします。
<form action="/Home/Foo" method="post">
<input type="text" id="Name" name="Name" value="" />
<input type="submit" value="OK" />
</form>
ASP.NET MVCを学習するための多くのチュートリアルとビデオを備えた有用なリソース:
他のヒント
個人的には、コントローラーでロジックを実行するか、コントローラーに作業を行うビジネスロジッククラスを呼び出します。その後、コントローラーがビューを返します。モデルをコントローラーからビューに渡し、モデルをビューから部分ビュー(ユーザーコントロールに相当するMVC)に渡す
これは、ビュー/部分的ビューにロジックがないことを意味し、モデルを非常にきれいな方法でレンダリングできることを意味します
これは理にかなっていますか?
Webformsページのライフサイクルにあまりにも添付されているようです。
MVCの表面上のプログラミング方法論は、WebFormsと基本的に異なります。 Ruby on Railsに似ています。
MVCを学習するのに役立ついくつかのリソースは次のとおりです。
また、Scott HanselmanのNerddinner Projectをお勧めします。ASP.NETMVCフレームワークを学ぶのに最適なプロジェクトです。
また、Darin Dimitrovの回答を読んで読み直します。MVCでのデータの処理方法の基本が含まれています