【问题标题】:MVC - view variable?MVC - 视图变量?
【发布时间】:2013-02-08 19:05:21
【问题描述】:

使用 MVC 模式说我有一个视图和一个控制器:

Controller
  User

View
  User
    login
    logout
    dashboard

用户控制器有以下动作:

loginAction
logoutAction
dashboardAction

登录视图有一个简单的登录表单,现在我的问题是:

表单应该从哪里获取其操作 url?

这是否应该在视图中硬编码,例如:

<form action="/post.php" method="post">

控制器应该告诉视图似乎不正确,那么这还能去哪里呢?

【问题讨论】:

  • 为什么将视图与模板混淆?
  • 对不起,我没有关注你
  • 是的。这是问题的一部分。正确的 MVC 中的视图是 UI 逻辑所在。他们从模型 layer 获取信息,并根据该信息决定如何呈现它(有时通过在 HTML 输出中组合多个模板)。你所拥有的只是templates,你称之为“视图”。

标签: model-view-controller


【解决方案1】:

控制器告诉视图它需要的一切,视图显示它。视图不知道控制器。

@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { @class = "form-signin", ReturnUrl = ViewBag.ReturnUrl }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <h2 class="form-signin-heading">Please sign in</h2>            
    <br />
    @Html.TextBoxFor(m => m.UserName, new { @class = "input", type = "text", placeholder = "Username" })     
    <br />
    @Html.PasswordFor(m => m.Password, new { @class = "input", type = "password", placeholder = "Password" });
    <br /><br />
    <button type="submit">Sign in</button>            
}

在该登录表单中,控制器上方法的链接是 ("Login", "Account"),其中 'Login' 是方法名称,'Account' 是控制器名称。

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 2015-06-29
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多