📅  最后修改于: 2023-12-03 15:29:30.459000             🧑  作者: Mango
在 ASP.Net Mvc 中,控制器中的动作被用来响应来自用户的请求。当用户请求一个特定的URL时,MVC框架将使用动作选择器来确定应该调用哪个动作来处理该请求。
动作选择器是一个决定哪个动作将处理请求的机制。建议将其看作一个匹配算法:根据用户请求中的各种因素,MVC框架会计算出哪些动作是可行的,然后选择最匹配的一个。
动作选择器是在MVC框架中自动运行的。当用户请求一个特定的URL时,MVC框架会根据路由规则来匹配请求到合适的控制器。
在确定控制器之后,MVC框架将使用动作选择器来选择要调用的动作方法。
动作选择器首先会剔除不满足要求的动作。然后根据以下因素确定哪个动作最佳匹配:
根据这些因素,MVC框架会确定可以被调用的动作方法,然后调用最好的匹配方法。
下面的代码片段示例演示了如何在ASP.Net MVC中使用动作选择器来确定最佳匹配的动作方法。
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Contact(string email)
{
ViewBag.Email = email;
return View();
}
[HttpPost]
public ActionResult Contact(FormCollection form)
{
string name = form["name"];
string message = form["message"];
ViewBag.Message = message;
return View();
}
}
在上面的示例中,我们有一个名为HomeController的控制器,并且有三个动作:“Index”,“Contact(GET)”,“Contact(POST)”。
MVC框架将根据HTTP请求的方法和参数类型来生成最佳匹配的操作方法。例如,当我们通过GET请求访问/contact时,将调用“Contact(GET)”方法。当我们发送一个POST请求时,将调用“Contact(POST)”方法。