Denetleyici eylemlerinin Varlıklar ile uğraştığı bir MVC projesi üzerinde çalışıyorum. Bazı denetleyiciler basitçe int assetId
, diğer int id
alabilir ve diğerActionParameters'dan karmaşık bir nesne geri alma
Ben eklenir bir ActionFilter yazıyorum (assetid tutan bir özelliği içeren) bir kompleks nesne AssetDTO dto
kullanarak: Farklı kontrolörleri farklı bir şekilde assetid parametresinde almak eylem yöntemi ve varlık değerini alabildiğim actionParameter adıyla sağlanır.
Eylem Yöntemi:
[AssetIdFilter("assetId")]
public ActionResult Index(int assetId)
{
...
}
nitelik olarak tanımlanır: beklendiği gibi çalışır
public class AssetIdFilterAttribute : ActionFilterAttribute
{
public string _assetIdParameterKey { get; set; }
public AssetIdFilterAttribute (string assetIdParameterKey)
{
_assetIdParameterKey = assetIdParameterKey;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
int assetId;
if (Int32.TryParse(filterContext.ActionParameters[_assetIdParameterKey].ToString(), out assetId))
{
......
}
}
, fakat sadece assetid ilkel olarak sağlandığında çalışacaktır. AssetId, karmaşık bir nesne içinde eylem yöntemine verildiğinde ne yapacağından emin değilim.
Her bir nesneyi türüne bağlı olarak farklı şekilde ayrıştırmam gerekecek mi? AssetIdFilter öğesinde, varlık öğesinin nerede olduğunu söylemek için bir çeşit nokta gösterimi belirtebileceğimi umuyordum: dto.assetId
Dinamikleri kullanabileceğim herhangi bir yol var mı? ya da yansıma ?? vb. ???