ActionParameter가 비어있을 때 Action Filter에 기본값을 설정하려면 어떻게해야합니까? 조치 매개 변수 No Key 일 때 기본값 추가
나는 그것이 전달 SectionID 매개 변수을 집어으로 필터가 잘 작동 내 컨트롤러에 소개 및 Area_1419 작업를 사용
. 색인 작업을 사용할 때 아래 오류가 발생합니다 ....주어진 키가 사전에 없습니다. 그것은 단지 특정 섹션에 적용되는이 라인에 ...
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();
}
}
}
감사합니다. 저는 그만큼 액션 필터를 사용하지 않았습니다. ActionParameters.ContainsKey ("SectionID") 체크를 실제로 사용하려면 어떻게해야합니까? – Jemes
위의 수정 된 응답. –
브라이언 감사합니다, 완벽하게 작동합니다! – Jemes