Как мне установить значение по умолчанию в моём фильтре действий, когда параметр ActionParameter пуст?
Когда я использую действия О и Area_1419 на моем контроллере, фильтр работает нормально, так как он принимает переданный параметр SectionID . Когда я использую действие index, я получаю сообщение об ошибке ниже ...
Указанный ключ отсутствует в словаре.
На этой линии ...
var GetSectionID = filterContext.ActionParameters["SectionID"];
Я не буду добавлять параметр SectionID к каждому действию контроллера, поскольку он применяется только к определенным разделам, и я не хочу добавлять фильтр к каждому действию, поскольку фильтр также влияет на эти страницы.
Можно ли установить значение по умолчанию для SectionID в фильтре, если для SectionID нет значений?
CategoriesAttribute
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Website.ActionFilters
{
public class CategoriesAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var GetSectionID = filterContext.ActionParameters["SectionID"];
var NoSectionID = 1;
if (GetSectionID == null)
{
filterContext.Controller.ViewData["SectionID"] = NoSectionID;
}
else
{
filterContext.Controller.ViewData["SectionID"] = GetSectionID;
}
}
}
}
Домашний контроллер
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Website.Models;
using Website.ActionFilters;
namespace Website.Controllers
{
[HandleError,Categories]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About(int SectionID)
{
return View();
}
public ActionResult Area_1419(int SectionID)
{
return View();
}
}
}