Я знаю 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; }
}
Я заинтересован в 2-х вещей:
1- я должен знать, какая кнопка которым была нажата
2- я должен сохранить как данные формы. Это означает, что когда пользователь уже заполнил LoginUsername для входа в систему, а затем решил зарегистрироваться на сайты и нажал кнопку Register, в ответ будет сохранено состояние формы.
Используя следующий подход:
@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 поможет этим проблемам?
Update 1:
Я не хочу использовать JavaScript и JQuery по некоторым причинам.
Не мог бы вы, а не создать модель оболочки, которая имеет все свои модели и после этого? таким образом, вы можете иметь все данные в одном месте. – mahlatse
У вас есть две отдельные формы, которые отправляются обратно на 2 отдельных метода. Вы знаете, какая кнопка нажата, какой метод действия ударил. Вы не можете получить значения в другой форме. Вам нужны две отдельные модели.Я предлагаю вам изучить код в 'AccountController', когда вы создаете новый проект в VS, чтобы понять, что вы должны делать. –