2016-04-03 8 views
1

これは愚かな質問かもしれませんが、私はMVCに慣れています(Webformsを多用しています)アプリケーションを持ち上げるだけでなく、データの種類を指定するだけではそのモデルがどのようなものかを理解することができます。mvc静的なページしかないウェブサイトのモデルを使用しますか

普通の(意味...典型的な)ウェブサイトを構築している場合は、個人的なウェブサイトはあまりありませんが、メールや何かがデータベースや実際に多くのデータ/計算に関係するものは何もなく、モデルは実際にどのような役割を演じていますか?

ありがとうございました!

+0

Xを絶対に必要とする場合は、Xを構築/使用してください! – Shyju

答えて

2

モデルの仕事は、問題のドメインを表現し、状態を維持し、アプリケーションの状態にアクセスして変更する方法を提供することです。あなたは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アプリケーションで最も大きく、最も重要なレイヤーです。

+0

aboutやpictureや何かのような静的なページはどうですか?私は正しいモデルが必要ないと仮定して正しいのですか?または私は何かが不足していますか?私の質問への賞賛のように、モデルの必要がなければ、私は1つ、右を使用すべきではありませんか? – blubberbo

+0

ええ、操作するデータがない場合や、モデルを使用する必要がない場合は、再考して、その場合はwebformsを使用する必要があります。 –

+0

すごく、ありがとう。あなたの答えは完璧です! – blubberbo

関連する問題