2013-08-26 126 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

工作也許你應該在這個問題的背景下解釋。 –

相關問題