【问题标题】:mvc do you use model for websites with only static pagesmvc 你对只有静态页面的网站使用模型吗
【发布时间】:2016-04-03 01:18:05
【问题描述】:

这可能是一个愚蠢的问题,但我是 MVC 的新手(我使用过很多 Webforms)并且正在观看一个教程视频,该视频强调了模型应该如何在应用程序中完成所有繁重的工作,以及模型如何变得更多而不仅仅是指定一种数据。

我的问题是,如果我正在构建一个普通(意思是......典型)网站,假设只是一个个人网站,它没有太多的用户交互,或者它可能有一个联系页面,它发送一个电子邮件或其他东西,但不涉及数据库或大量数据/计算,模型真正扮演什么角色?

非常感谢您的想法!

【问题讨论】:

  • 当你绝对需要 X 时构建/使用 X!

标签: asp.net-mvc model-view-controller asp.net-core-mvc


【解决方案1】:

模型的工作是表示问题域、维护状态并提供访问和改变应用程序状态的方法。

例如,在您的网站中,如果您有上面所说的联系表格,那么您的 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 应用程序中最大、最重要的层。

【讨论】:

  • 那些只是静态的页面,比如关于或图片之类的东西。我假设他们不需要模型是正确的,对吗?还是我错过了什么?就像对我的问题的赞扬所说,如果不需要模型,我不应该使用一个,对吧?
  • 是的,如果您没有任何数据可操作或任何您不需要使用模型的东西,但如果是这种情况,您可能应该重新考虑并使用网络表单。
  • 太棒了,非常感谢。你上面的答案也很完美!
  • 别担心,伙计:)
猜你喜欢
  • 2016-10-23
  • 2014-09-10
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
相关资源
最近更新 更多