基于之前的项目,我们需要向数据库(存疑)输入一些参数,需要一个Input的Model和方法
使用一个超链接做一个跳转
在Views类中添加一个HTML页面
<form method="post">
<div>战队名:<input type="text" name="FirstName" value="" /></div>
<div>选手ID<input type="text" name="LastName" value="" /></div>
<div>出生年月<input type="datetime-local" name="BirthDay" value="" /></div>
<div>
<select>
<option>男</option>
<option>女</option>
</select>
</div>
<hr />
<button type="submit" name="Save">保存</button>
</form>
让它以post方法向服务器提交数据
在homecontroller控制器中写入对GET和POST请求的方法:
//缺省[HttpGet]
public IActionResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(StudentCreateModel stu)//传入model
{
var newStudent = new Student
{
FirstName = stu.FirstName,
LastName=stu.LastName,
BirthDay=stu.BirthDay,
gender=stu.gender
};
var newModel = _repository.Add(newStudent);
//return View("Detail", newModel);
return RedirectToAction(nameof(Detail),new { id=newModel.Id});//重定向 ---nameof利于重构 匿名类
}
其中为了防止页面反复提交表单,在提交完成之后使用重定向将页面定向为GET方法
同时构建接口和实现方法:
T Add(T newModel);//接口
实现:
public Student Add(Student newModel)
{
var maxId = ObjList.Max(x => x.Id);
newModel.Id = maxId + 1;//模拟数据库自增
ObjList.Add(newModel);
return newModel;
}
运行效果: