2012-05-01 7 views
1

В ASP.NET MVC в методах [HttpPost] среда выполнения MVC автоматически отображает и передает данные из полей формы в передней части в модель просмотра, основанные на именах полей.Привести привязку модели ASP.NET MVC к ASP.NET WebForm

Как я могу выполнить одно и то же в ASP.NET WebForm?

например. У меня есть объект, называемый Person with FirstName и LastName.

У меня есть страница WebForm с элементами управления Textbox с FirstName и LastName соответственно.

При нажатии кнопки «Отправить» в форме существует ли способ автоматически привязывать имя FirstName и LastName к объекту Person в событии Button_Click с кодом?

ответ

0

Возможно, самым простым способом является назначение значений явно в событии Page_Load, всякий раз, когда это обратная передача. Что-то вроде этого:

if (this.IsPostBack) 
{ 
    person.FirstName = FirstNameTextBox.Text; 
    person.LastName = LastNameTextBox.Text; 
} 

Или вы искали более декларативный подход?

+1

Он ищет динамический метод, который берет эти свойства и пытается автоматически сопоставить их с типом, основанным на их именах. –

+1

Скорее как Asp.Net MVC, то? –

+0

Да, я ищу функциональность, найденную в ASP.NET MVC, и применяться к обратной почте WebForms. Приветствия. –

0

Посмотрите на Model Binder for ASP.NET Web Forms. Он делает то, что вы хотите - отображает данные обратной передачи в класс через пользовательские атрибуты, применяемые к его свойствам.

4

Вы можете сделать это в webforms v4.5 с использованием привязки к модели. Это метод, который мы называем Ad-Hoc Model Binding, где вы можете привязываться к элементам управления без использования связанных с данными элементов управления, таких как formview. Я планировал писать об этом в блоге, но в следующем блоге приводится краткое описание блога

Ниже представлена ​​информация о том, как будет выглядеть ваша разметка. Моя модель имеет 2 свойства: название и описание

Name<input type="text" name="Name" value=" " id="Name"  /> 
<br /> 

Description<input type="text" name="Description" value=" " id="Description" /> 
<br /> 
<asp:Button Text="Submit" runat="server" OnClick="Unnamed_Click" /> 

Ниже приведен код в обработчик щелчка кнопки. Категория - это моя модель. В этом случае система привязки модели вытягивает значение от поставщика значений формы, который просматривает коллекцию форм.

var category = new Category(); 
var formValueProvider = new FormValueProvider(ModelBindingExecutionContext);    

TryUpdateModel(category, formValueProvider); 

if (ModelState.IsValid) 
{ 
    // save changes to database 
} 
Смежные вопросы