我今天早些时候在ASP.Net MVC中提出了一个问题ActionFilters.事实证明我的问题确实是我ActionFilter甚至没有跑步.我阅读这篇文章的其他内容,我找不到他做的任何我不做的事情.
这是我的代码:
// The ActionFilter itself
public class TestingIfItWorksAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.TempData["filter"] = "it worked!";
base.OnActionExecuting(filterContext);
}
}
// The Controller Action with the filter applied
[TestingIfItWorks]
public ActionResult Test()
{
var didit = TempData["filter"];
return View();
}
Run Code Online (Sandbox Code Playgroud)
我在调试时永远不会遇到过滤器方法中的断点,并TempData["filter"]在null呈现视图时保留一个值.
为什么这不起作用?
我正在使用实体框架-6在asp.net mvc-5 Web应用程序上工作.我使用实体框架映射了我的数据库表,生成包含DBContext类的.edmx文件.目前我有两个控制器类,一个用于管理服务器,另一个用于管理vms.添加/编辑服务器或VM时,我想检查他们的ip和mac地址是否已经存在.目前我正在对动作方法本身进行如下检查: -
public class Server : Controller{
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ServerJoin sj)
{
bool ITipunique = repository.ISITIPUnique(vmj.NetworkInfo2.FirstOrDefault().IPADDRESS);
bool ITmacunique = repository.ISITMACUnique(vmj.NetworkInfo2.FirstOrDefault().MACADDRESS);
bool Tipunique = repository.ISTIPUnique(vmj.NetworkInfo2.FirstOrDefault().IPADDRESS);
bool Tmacunique = repository.ISTMACUnique(vmj.NetworkInfo2.FirstOrDefault().MACADDRESS);
try
{
if ((sj.IsIPUnique == true) && (!ITipunique || !Tipunique))
{
ModelState.AddModelError("NetworkInfo2[0].IPAddress", "Error occurred. The Same IP is already assigned.");
}
if ((sj.IsMACUnique == true) && (!ITmacunique || !Tmacunique))
{
ModelState.AddModelError("NetworkInfo2[0].MACAddress", "Error occurred. The Same MAC Address is already assigned.");
}
Run Code Online (Sandbox Code Playgroud)
&
public class VM : Controlelr { …Run Code Online (Sandbox Code Playgroud)