0
我有一個MVC 3應用程序,我在表單上有很多整數字段。他們都需要範圍驗證,但範圍存在於我的數據庫的表中。所以我想創建一個可重用的遠程驗證工具,它將查找最小值和最大值並將驗證返回到視圖。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
任何人都可以點我在正確的方向?
謝謝!
謝謝,但我見過這些例子。我正在尋找可以在多個領域重複使用的東西。我在表單中有50個字段,都需要相同的查找,但我不想寫50個json查詢。 – user988148
使用相同的公共JSON驗證方法,但傳入類型。然後有一個專門的查找方法,在該類型上執行switch語句。查找方法將返回該類型所需的查詢。 –
這將幫助您:http://stackoverflow.com/a/10264019/1557032具體來說,請參閱正在添加的REMOTE規則。 –