ASP.NET MVC 4初心者入門チュートリアルの6---6.ビューの編集と編集方法

20596 ワード

このセクションでは、ムービーコントローラの生成された操作方法とビューを確認します.次に、カスタム検索ページを追加します.
アプリケーションを実行し、ブラウザのアドレスバーに/Moviesを追加したURLを参照します.編集リンクにマウスポインタを置き、リンク先のURLを表示します.
リンクを編集する方法は、ViewsMoviesIndexでMoviesです.cshtmlビューで生成された:
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) 
Html.ActionLinkオブジェクトはヘルプであり、Systemを露出する使用される.Web.Mvc.WebViewPageベースクラスのプロパティ.ヘルプのHtmlメソッドは、HTMLハイパーリンクがコントローラにリンクされた操作メソッドを動的に生成するのに便利です. ActionLink メソッドの最初のパラメータは、提示されるリンクテキスト(例えば、ActionLink)である.2番目のパラメータは、呼び出す操作メソッドの名前です.最後のパラメータは匿名オブジェクトであり、ルーティングデータ(この例ではID 4)を生成する.
上の図に示す生成されたリンクはhttp://localhost:xxxxx/映画/編集/4.デフォルトのルーティング(App_StartRouteConfig.csで確立)は、URLモードEdit Meを使用します.従って、ASP.NET会http://localhost:xxxxx/映画/編集/4は、{controller}/{action}/{id}コントローラパラメータMovies が4に等しいIDの動作方法の要求に変換される.App_の確認Start\RouteConfig.csファイルの次のコード.
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }

クエリー文字列の操作方法パラメータを使用することもできます.例えば、URLhttp://localhost:xxxxx/映画/編集?ID=4はまた、パラメータEditが4であることをMoviesコントローラのEdit動作方法に伝達する.IDコントローラを開きます.2つのMoviesの動作方法は以下の通りである.
//
// GET: /Movies/Edit/5

public ActionResult Edit(int id = 0) { Movie movie = db.Movies.Find(id); if (movie == null) { return HttpNotFound(); } return View(movie); } // // POST: /Movies/Edit/5 [HttpPost] public ActionResult Edit(Movie movie) { if (ModelState.IsValid) { db.Entry(movie).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(movie); }

通知された2番目のEdit操作方法の前のEdit属性.この属性は、オーバーロードされた HttpPostメソッドがPOSTリクエストのみを呼び出すことができることを指定します.Editプロパティを最初の編集方法に適用できますが、デフォルト値であるため必要ありません.( HttpGetメソッドとしてHttpGetプロパティを暗黙的に割り当てる動作メソッドを参照する).HttpGet HttpGetメソッドは、映画IDパラメータを取得し、実体フレームEditメソッドを使用して映画を検索し、編集ビューの選択された映画に戻る.IDパラメータは、パラメータなしでFindのメソッドを呼び出す場合、デフォルト値がゼロであることを指定します.映画が見つからない場合は、HttpNotFoundに戻ります.足場システムが編集ビューを作成すると、Edit 課をレビューし、Movieおよび要素の各クラスの属性を示すコードを作成します.次の例では、生成された編集ビューを示します.
@model MvcMovie.Models.Movie

@{
    ViewBag.Title = "Edit";
}

Edit

@using (Html.BeginForm()) { @Html.ValidationSummary(true)
Movie @Html.HiddenFor(model => model.ID)
class="editor-label"> @Html.LabelFor(model => model.Title)
class="editor-field"> @Html.EditorFor(model => model.Title) @Html.ValidationMessageFor(model => model.Title)
class="editor-label"> @Html.LabelFor(model => model.ReleaseDate)
class="editor-field"> @Html.EditorFor(model => model.ReleaseDate) @Html.ValidationMessageFor(model => model.ReleaseDate)
class="editor-label"> @Html.LabelFor(model => model.Genre)
class="editor-field"> @Html.EditorFor(model => model.Genre) @Html.ValidationMessageFor(model => model.Genre)
class="editor-label"> @Html.LabelFor(model => model.Price)
class="editor-field"> @Html.EditorFor(model => model.Price) @Html.ValidationMessageFor(model => model.Price)

type="submit" value="Save" />

}
@Html.ActionLink("Back to List", "Index")
@section Scripts { @Scripts.Render("~/bundles/jqueryval") }
文をファイルの上部にどのように配置するかをビューテンプレートに通知します.これにより、ビューが予想するモデルビューテンプレートタイプ@model MvcMovie.Models.Movieが指定されます.
構築されたコードで使用されるヘルプメソッドのいくつかの簡略化されたHTMLタグ.Movieヘルプには、フィールド(タイトル、ReleaseDate、流派、または価格)の名前が表示されます.Html.LabelForヘルパーはHTML Html.EditorFor要素を表示します.ヘルプには、このプロパティに関連付けられた認証メッセージが表示されます.
アプリケーションを実行し、/Movies URLにナビゲートします.「編集」リンクをクリックします.ブラウザでWebページのソースコードを表示します.以下に示すHTMLフォーム要素.
action="/Movies/Edit/4" method="post">
Movie data-val="true" data-val-number="The field ID must be a number." data-val-required="The ID field is required." id="ID" name="ID" type="hidden" value="4" />
class="editor-label">
class="editor-field"> class="text-box single-line" id="Title" name="Title" type="text" value="Rio Bravo" /> class="field-validation-valid" data-valmsg-for="Title" data-valmsg-replace="true">
class="editor-label">
class="editor-field"> class="text-box single-line" data-val="true" data-val-date="The field ReleaseDate must be a date." data-val-required="The ReleaseDate field is required." id="ReleaseDate" name="ReleaseDate" type="text" value="4/15/1959 12:00:00 AM" /> class="field-validation-valid" data-valmsg-for="ReleaseDate" data-valmsg-replace="true">
class="editor-label">
class="editor-field"> class="text-box single-line" id="Genre" name="Genre" type="text" value="Western" /> class="field-validation-valid" data-valmsg-for="Genre" data-valmsg-replace="true">
class="editor-label">
class="editor-field"> class="text-box single-line" data-val

:https://www.cnblogs.com/178mz/p/4241150.html