Handling forms is one of the most important features of any web application framework. Vici MVC handles this quite a bit differently than most other frameworks, but we believe it is very elegant and powerful.
We'll show the basic by presenting a small example of a form to edit an employee record:
[Layout("master")] [View("editemployee")] public class EditEmployee : PageController { public class Employee { public string Name; public decimal Salary; } public class EmployeeForm : WebForm { private Employee _employee; [FormTextBox(MinLength=3,MaxLength=30)] public string Name; [FormTextBox(Min=0)] public decimal Salary; public EmployeeForm(Employee employee) { _employee = employee; } // Called when first showing the form public override void OnFill() { Name = _employee.Name; Salary = _employee.Salary; } // Called when the form was posted and all fields are valid public override void OnPost() { _employee.Name = Name; _employee.Salary = Salary; } } public void Run(int id) { Employee employee = new Employee(id); EmployeeForm form = new EmployeeForm(employee); form.Bind(); if (form.Validated) { employee.Save(); } } }
editemployee.htm
<html> <body> <form method="post" action="{{@Url}}"> <label>Name</label> [[Name]] <label>Salary></label> [[Salary]] <input type="submit" name="btnSave" value="Save" /> </form> </body> </html>
The [[Name]] and [[Salary]] tags are replaced by text boxes. When posting the form, the input is validated according to the attributes in the form class. If there is a validation error, the values entered in the text boxes will be remembered across postbacks.
Of course you can do more than display text boxes. Other stuff you can do:
>> Next: Part 6