1.在Controllers文件夹新建BindController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using WebApplication1.Models;
namespace WebApplication1.Controllers
{
public class BindController : Controller
{
//https://localhost:44386/bind/Index1/?id=1&name=zs
public IActionResult Index1(int id, string name)
{
return Content("id:" + id.ToString() + " name:" + name);
//return View();
}
//https://localhost:44386/bind/Index/?id=1&name=zs
public IActionResult Index2(UserModel user,int id)
{
//return View();
return Content("user id:" + user.id.ToString() + " user name;" + user.Name+"input id:"+id.ToString());
}
[HttpGet]
public IActionResult Index()
{
return View();
}
//public IActionResult Index([FromBody] UserModel user) //[FromBody]获取不到 api使用
//public IActionResult Index([FromForm]UserModel user) [FromForm]可以获取到,一般不写
[HttpPost]
public IActionResult Index(UserModel user)
{
//ModelState.Remove("Name"); 可以去掉验证Name
bool state = ModelState.IsValid;
return View();
}
}
}
2.当url输入的参数名字和方法的参数名字一致时候,会自动匹配
如果方法参数为类的话,当url输入的参数名字该类的属性一致时候,也会自动匹配
3.数据验证,可以在类中增加注解来进行数据验证,在控制器的方法中通过ModelState.IsValid来得到验证结果
4 UserModel类
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace WebApplication1.Models
{
public class UserModel
{
public int id { get; set; }
//[DataType]
//[StringLength()]
[Required(ErrorMessage ="请输入名字")]
public string Name { get; set; }
}
}
5 Bind文件夹下的Index.cshtml
@{
ViewData["Title"] = "Index";
}
<h2>Index</h2>
<form method="post" action="/Bind/Index">
<input type="text" name="id" id="id" value="2"/>
<input type="text" name="name" id="name" value="zs"/>
<input type="submit" value="submit" />
</form>