Django在ASP.NET MVC中形成模拟

时间:2010-07-05 09:42:22

标签: django asp.net-mvc-2 django-forms

ASP.NET MVC 2中是否有类似Django表单(http://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs)?

1 个答案:

答案 0 :(得分:3)

我列出了您提供的链接中列出的“主要主题”......


  

1 - 显示带有的HTML表单   自动生成的窗体小部件。

在ASP.NET MVC中,您可以使用Html.EditorFor(Model)自动生成整个表单。您可以为模型添加您不想构建的任何数据项的属性。

这将生成一个包含每个属性字段的整个表单。

<%= Html.EditorFor(m => m) %>

或者您可以在个别属性上使用它

<%= Html.EditorFor(m => m.FirstName) %>

或者你可以告诉它你想要什么元素

<%= Html.TextBoxFor(m => m.FirstName) %>

  

2 - 根据一组检查提交的数据   验证规则。

有很多方法可以验证ASP.NET MVC中的数据。您可以添加属性以使模型上的项成为必需项,或确保它们的值在一定范围内等。在MVC 3中,您还可以实现“IValidatable”接口,它将添加“Validate()”对象的方法,您可以将自己的自定义规则添加到。


  

3 - 重新显示表格   验证错误。

这是开箱即用的MVC,你应该回发到同一页面。它会自动将CSS类添加到验证失败的项目中,并填充和验证占位符/验证摘要。

<%= Html.TextBoxFor(m => m.FirstName) %>
<%= Html.ValidationMessageFor(m => m.Firstname) %>

  

4 - 将提交的表格数据转换为   相关的Python数据类型。

同样,这是开箱即用的东西。如果您将表单发布到某个操作,MVC会将数据发送到您的模型中。

[HttpPost]
public ActionResult Edit(CustomerModel model) {
    // model will automatically populated from the form post...

    // Any validation attributes you placed on the model and
    // any "natural" validation issues will already have been
    // checked (i.e. someone typing "A" into a field that is an int
    // on your model
    if (ModelState.IsValid) {
        _myRepository.Save(model);
        return RedirectToAction("Detail", new { id = model.Id });
    }

    // If validation has failed, you can just return the view again
    // so the user can correct the errors
    return View(model);
}