2013-02-08 95 views
0

使用MVC模式说我有一个视图和控制器:MVC - 查看变量?

Controller 
    User 

View 
    User 
    login 
    logout 
    dashboard 

用户控制器具有以下操作:

loginAction 
logoutAction 
dashboardAction 

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

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

如果这在视图中硬编码,例如:

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

它似乎不正确的,因为控制器应该告诉视图,所以还有什么地方,这可能去了?

+0

你为什么模板混淆视图? – 2013-02-08 22:52:22

+0

我没跟着你抱歉 – 2013-02-09 00:19:48

+0

是的。这是问题的一部分。正确的MVC中的视图是UI逻辑所在的位置。他们从模型**层获取信息**,并根据该信息决定如何呈现它(有时通过在HTML输出中组合多个模板)。你有什么只是[模板](http://codeangel.org/articles/simple-php-template-engine.html),你称之为“意见”。 – 2013-02-09 00:46:41

回答

0

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

@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>    
} 

在该登录表单,链接到该方法在控制器上是(“登录”,“帐户”),其中“登录”是方法名和“帐户”是控制器的名称。