kreta/KretaWeb/Helpers/RequiredIfReflector.cs
2024-03-13 00:33:46 +01:00

25 lines
1,001 B
C#

using System.Collections.Generic;
using System.Web.Mvc;
namespace Kreta.Web.Helpers
{
public static class RequiredIfReflector
{
public static bool RequiredIf<TModel>(HtmlHelper<TModel> helper, IDictionary<string, object> validationAttributes)
{
if (validationAttributes.Keys.Contains("data-val-requiredif-dependentproperty") && validationAttributes.Keys.Contains("data-val-requiredif-dependentvalue"))
{
string dependentPropertyName = (string)validationAttributes["data-val-requiredif-dependentproperty"];
object requiredValue = validationAttributes["data-val-requiredif-dependentvalue"];
var propertyInfo = helper.ViewData.Model.GetType().GetProperty(dependentPropertyName);
object dependentPropertyValue = propertyInfo.GetValue(helper.ViewData.Model);
return requiredValue.Equals(dependentPropertyValue);
}
return false;
}
}
}