在ASP.NET MVC框架中,当控制器无法找到与浏览器请求匹配的动作方法时,会调用Controller.HandleUnknownAction
方法。在之前的文章中,实现了HTTP文件上传功能,并在其中使用了这种方法。以下是C#语言中的语法示例:
protected virtual void HandleUnknownAction(string actionName)
下面是一个名为FileUploadController
的类,它实现了HandleUnknownAction
方法:
[HandleError]
public class FileUploadController : Controller
{
public ActionResult FileUpload()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult FileUpload(HttpPostedFileBase uploadFile)
{
if (uploadFile.ContentLength > 0)
{
string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"), Path.GetFileName(uploadFile.FileName));
uploadFile.SaveAs(filePath);
}
return View();
}
protected override void HandleUnknownAction(string actionName)
{
actionName = "FileUpload";
this.View(actionName).ExecuteResult(this.ControllerContext);
}
}
以上示例展示了当对控制器发起FileUpload
动作请求时,会显示FileUpload
视图。如果没有匹配的视图,则会调用FileUpload
控制器的HandleUnknownAction()
方法。硬编码了FileUpload
视图,以便如果浏览器请求不匹配FileUpload
,则会显式调用FileUpload
动作。