这里我有一个型号。现在我想用html helper构建表单。因此,当调用索引操作时,我想手动填充模型数据并将模型发送到视图。 这是我的模型数据,但由于缺乏知识,我想要构建形式的方式不可能。所以,如果有可能帮助我
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
namespace MvcPractise.Models
{
public class Student
{
[Required(ErrorMessage = "First Name Required")] // textboxes will show
[Display(Name = "First Name :")]
[StringLength(5, ErrorMessage = "First Name cannot be longer than 5 characters.")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last Name Required")] // textboxes will show
[Display(Name = "Last Name :")]
[StringLength(5, ErrorMessage = "Last Name cannot be longer than 5 characters.")]
public string LastName { get; set; }
[Required(ErrorMessage = "DOB require")] // datepicker will show
[Display(Name = "DOB :")]
[DataType(DataType.Date)]
public DateTime Dob { get; set; }
[Required(ErrorMessage = "State Required")] // drodown will show
[Display(Name = "State :")]
public List<State> State { get; set; }
[Required(ErrorMessage = "City Required")] // drodown will show
[Display(Name = "City :")]
public List<City> City { get; set; }
[Required(ErrorMessage = "Language known Required")] // group of checkboxes will show
[Display(Name = "Language known :")]
public List<Language> Language { get; set; }
[Required(ErrorMessage = "Sex Required")] // group of radio button will show
[Display(Name = "Sex :")]
public List<Sex> Sex { get; set; }
[Required(ErrorMessage = "Computer Course Required")] // listbox will show
[Display(Name = "Computer Course Done :")]
public List<ComputerCourse> ComputerCourse { get; set; }
}
public class State
{
public string ID { get; set; }
public string Name { get; set; }
}
public class City
{
public string ID { get; set; }
public string Name { get; set; }
}
public class Language
{
public string ID { get; set; }
public string Name { get; set; }
}
public class Sex
{
public string ID { get; set; }
public string Type { get; set; }
}
public class ComputerCourse
{
public string ID { get; set; }
public string Type { get; set; }
}
}
1)作为名字&amp;我希望显示文本框的姓氏属性
我希望显示带有日期选择器的文本框的2)
3)对于DOB属性,我想显示带日期选择器的文本框
4)状态/城市属性我要显示下拉列表或组合
5),我想要显示一组复选框的语言属性
6)对于性别属性,我想显示男性和女性的2个单选按钮女
7)对于我希望显示列表框的计算机课程属性
现在编写一个索引操作方法,该方法将使用虚拟数据填充模型并生成UI。 当单击“保存”按钮时,模型数据将返回到名为“已保存”的操作方法
public ActionResult Save(Student s)
{
return View(s);
}
or
public ActionResult Save(StudentViewModel sv)
{
return View();
}
请帮助新手学习东西。感谢
答案 0 :(得分:1)
这是一篇关于各种类型的模型绑定的好文章。它不会太长,并且揭开了自动绑定和手动方式的神秘面纱。
http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx
我也同意这个问题的范围有点过于宽泛。我会尽力帮助一下。您可以为get和post请求使用相同的方法名称(加载空页面的是get,当您填写表单时,您将“将表单数据”“发布”回post方法)。你需要指定哪一个使用http'get'以及哪一个使用'post',你可以通过用这样的属性装饰你的方法来实现。
[HttpGet]
public ActionResult Create()//leave it empty youre about to make it
{
var model = new ObjectType();
return view(model); // pass the new model ( empty object ) to your view;
}
[HttpPost]
public ActionResult Create(ObjectType theObject){
//MVC will try to populate the values of properties
//of theObject if they match the names on your form elements
//save it in your database
}