我知道similar question already asked,但我的問題與保存頁面狀態有關。我使用相同的模型來簡化。假設我有以下模型:以多種形式保存頁面數據頁面
public class LoginRegisterViewModel
{
public string LoginUsername { get; set; }
public string LoginPassword { get; set; }
public string RegisterUsername { get; set; }
public string RegisterPassword { get; set; }
public string RegisterFirstName { get; set; }
public string RegisterLastName { get; set; }
}
我感興趣的兩兩件事:
1 - 我必須知道至極按鈕被點擊
2 - 我必須保持兩個表單數據。這意味着當用戶已經填寫LoginUsername進行登錄,然後決定註冊網站並點擊註冊按鈕,以響應這兩個表單狀態將被保存。
使用以下方法:
@model LoginRegisterViewModel
@using (Html.BeginForm("Login", "MemeberController", FormMethod.Post, new {})) {
@Html.LabelFor(m => m.LoginUsername)
@Html.TextBoxFor(m => m.LoginUsername)
@Html.LabelFor(m => m.LoginPassword)
@Html.TextBoxFor(m => m.LoginPassword)
<input type='Submit' value='Login' />
}
@using (Html.BeginForm("Register", "MemeberController", FormMethod.Post, new {})) {
@Html.LabelFor(m => m.RegisterFirstName)
@Html.TextBoxFor(m => m.RegisterFirstName)
@Html.LabelFor(m => m.RegisterLastName)
@Html.TextBoxFor(m => m.RegisterLastName)
@Html.LabelFor(m => m.RegisterUsername)
@Html.TextBoxFor(m => m.RegisterUsername)
@Html.LabelFor(m => m.RegisterPassword)
@Html.TextBoxFor(m => m.RegisterPassword)
<input type='Submit' value='Register' />
}
我就知道已經被點擊了哪個按鈕。但我不知道其他形式有什麼信息。如果我只使用單個表單,我不知道哪個按鈕已經提交了表單(我知道我可以使用Request.Form [「buttonvalue」],但我認爲它不是乾淨的解決方案)。
在最壞的情況下,它是可能的模型包含一個網格信息:
public class LoginRegisterViewModel
{
public string LoginUsername { get; set; }
public string LoginPassword { get; set; }
public string RegisterUsername { get; set; }
public string RegisterPassword { get; set; }
public string RegisterFirstName { get; set; }
public string RegisterLastName { get; set; }
public List<RowModel> Rows {get; set;}
}
當我剛剛發送的登錄表單,我不知道當前頁面,分揀,在我的網頁過濾器。 MVC如何幫助解決這些問題?
更新1:
我不想使用JavaScript和jQuery的一些原因。
你不想創建一個包含所有模型和發佈的包裝模型嗎?這樣你就可以將所有的數據放在一個地方 – mahlatse
你有兩個獨立的表格,可以回到2個獨立的方法。您知道哪個按鈕被點擊哪個操作方法被擊中。你無法獲得其他形式的值。你需要2個獨立的模型。當你在VS中創建一個新項目時,我建議你在'AccountController'中研究代碼,以瞭解你應該做什麼。 –