モデルの仕事は、問題のドメインを表現し、状態を維持し、アプリケーションの状態にアクセスして変更する方法を提供することです。あなたはMVCパターンの上に述べたようにあなたは、お問い合わせフォームを持っている場合は、あなたのウェブサイトでは例えば
この
モデル
namespace WebApplication1.Models
{
public class Contact {
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Comment { get; set; }
}
}
見る(文句を言わないすべてのフィールドを含める)
@using (Html.BeginForm("Contact", "Home", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @id = "contact-form", role = "form" }))
{
@Html.ValidationSummary()
<fieldset>
<div class="form-div-1">
<label class="name">
@Html.TextBoxFor(m => m.FirstName, new { @placeholder = "First Name *", @type = "text" })
</label>
</div>
<div class="form-div-2">
<label class="email">
@Html.TextBoxFor(m => m.Email, new { @placeholder = "Email Address *", @type = "email" })
</label>
</div>
<div class="button-wrapper">
<input type="submit" value="Send" name="submit" class="button">
</div>
</fieldset>
}
だろう
コントローラ
[HttpPost]
public ActionResult Contact(MailModels e)
{
if (ModelState.IsValid)
{
StringBuilder message = new StringBuilder();
MailAddress from = new MailAddress(e.Email.ToString());
message.Append("First Name: " + e.FirstName + "\n");
message.Append("Email: " + e.Email + "\n");
// send email logic below
}
}
この基本的な例では、その論理を分割することがどれだけ重要で良いのかを知ることができます。
モデルは、単にデータの素晴らしい抽象化を提供します。モデルは「私が必要とするすべてのフィールドを取得するためにこの内部結合を書くにはどうすればよいか」という考え方ではなく、「アプリケーションのオブジェクト同士がどのように関係しているのか、私が必要とするデータを入手してください "。
MVC、モデルの中心的なコンポーネント、ユーザー インターフェースとは独立して、その問題領域の面で、アプリケーションの 動作をキャプチャします。このモデルは、アプリケーションのデータを直接管理します。論理 とルール
したがって、基本的にモデルはほとんどのMVCアプリケーションで最も大きく、最も重要なレイヤーです。
Xを絶対に必要とする場合は、Xを構築/使用してください! – Shyju