我有一个MVC 3应用程序,我在表单上有很多整数字段。它们都需要范围验证,但范围存在于我的数据库中的表中。所以我想创建一个可重用的远程验证工具,它将查找最小值和最大值并将验证返回给视图。
我正在使用一些示例代码更新此内容,以便查看我的请求可能会澄清我要查找的内容:
在我的验证课程中:
[Remote("CheckIntegerRange", "Validation", ErrorMessage = "Value outside of range")]
public object UW1_Web_Tension_SP { get; set; }
[Remote("CheckIntegerRange", "Validation", ErrorMessage = "Value outside of range")]
public object UW2_Web_Tension_SP { get; set; }
[Remote("CheckIntegerRange", "Validation", ErrorMessage = "Value outside of range")]
public object UW3_Web_Tension_SP { get; set; }
在我的ValidationController中,我尝试创建一个具有多个参数的函数,但我不认为我可以 - 但是我认为它显示了我想要做的更清楚:
public class ValidationController : Controller
{
public JsonResult CheckIntegerRange(int integer, string EntityName, string AttributeName)
{
var result = false;
int MinInteger = 0;
int MaxInteger = 100;
//declare recipe entities
var context = new MadicoRecipeEntities();
//set sql statements and get description, etc from attributes view
var esqlIntegerAttributeDetails = "SELECT VALUE c FROM MadicoRecipeEntities.v_AttributeIntegerRangeDetails AS c " +
"WHERE c.EntityName = '" + EntityName + "' AND c.Attribute = '" + AttributeName + "'";
var queryAttributeDetails = context.CreateQuery<v_AttributeIntegerRangeDetails>(esqlIntegerAttributeDetails);
var RecipeAttributes = queryAttributeDetails.ToList();
foreach (var AttributeDetails in RecipeAttributes)
{
MinInteger = AttributeDetails.Min;
MaxInteger = AttributeDetails.Max;
}
return Json(result, JsonRequestBehavior.AllowGet);
}
}
我在asp.net论坛上发现了以下帖子,它处理了我的第一个障碍 - 将不同的命名属性传递给同一个验证器。但是,在此示例中,名称一般传递 - 我需要使用名称来查询表以获取适用的最小和最大范围。
http://forums.asp.net/t/1625928.aspx/3/10
有人能指出我正确的方向吗?
谢谢!