2013-08-26 131 views
1

我从mvc框架开始,尝试做一些事情。 其中之一创建简单的注册页面,其中有很少的文本框,并将值传递给控制器​​,然后将控制器保存到数据库。将值从视图传递到控制器

我用表单提交的方法来实现类似的任务

@using (Html.BeginForm()) 
    { 
     @Html.Label("Username:") @Html.TextBox("texbotUserName", "") <br /> 
     @Html.Label("Password:") @Html.TextBox("texbotPassword", "") <br /> 

     <input type="submit" value="SignIn" name="action:SignIn" /> 
     <input type="submit" value="Register" name="action:Register" /> 
    } 

    [HttpPost] 
    [MultiButton(Name = "action", Argument = "SignIn")] 
    public ActionResult SignIn(string textboxUserName) 
    { 
     return Content(textboxUserName); 
    } 

除了上面,有没有更好的方式来传递值(使用机型也许?),以达到最佳的东西。

感谢您的回答。

回答

1

设计模型:

public class UserLoginModel 
{ 
    [Required(ErrorMessage = "Please enter your username")] 
    [Display(Name = "User Name")] 
    [MaxLength(50)] 
    public string UserName { get; set; } 
    [Required(ErrorMessage = "Please enter your password")] 
    [Display(Name = "Password")] 
    [MaxLength(50)] 
    public string Password { get; set; } 
} 

呈现的模型视图:

@model MyModels.UserLoginModel 
@{ 
    ViewBag.Title = "User Login"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
@using (Html.BeginForm()) 
{ 
    <div class="editor-label"> 
    @Html.LabelFor(m => m.UserName) 
    </div> 
    <div class="editor-field"> 
    @Html.TextBoxFor(m => m.UserName) 
    @Html.ValidationMessageFor(m => m.UserName) 
    </div> 
    <div class="editor-label"> 
    @Html.LabelFor(m => m.Password) 
    </div> 
    <div class="editor-field"> 
    @Html.PasswordFor(m => m.Password) 
    @Html.ValidationMessageFor(m => m.Password) 
    </div> 
    <p> 
    <input type="submit" value="Log In" /> 
    </p> 
    </div> 
} 

与行动

[HttpPost] 
public ActionResult Login(UserLoginModel user) 
{ 
    // Implementation 
    return View(user); 
} 
+0

工作也许你应该在这个问题的背景下解释。 –

相关问题