私はこの問題を抱えています:
2 つの属性の合計が 100 を超えることができないモデルを検証しています。このために、次のように使用しています。
私のモデルでは、これらは私の属性です:
[Remote("ValidatePrevTextWidth", "Validation", AdditionalFields = "TextboxWidth")]
public int PrevTextWidth { get; set; }
[Remote("ValidateTextboxWidth", "Validation", AdditionalFields = "PrevTextWidth")]
public int TextboxWidth { get; set; }
私の ValidationController は次のとおりです。
public JsonResult ValidatePrevTextWidth(int PrevTextWidth, int TextboxWidth)
{
bool valid = AreValid(PrevTextWidth, TextboxWidth);
return Json(valido, JsonRequestBehavior.AllowGet);
}
public JsonResult ValidateTextboxWidth(int TextboxWidth, int PrevTextWidth)
{
bool valid = AreValid(PrevTextWidth, TextboxWidth);
return Json(valido, JsonRequestBehavior.AllowGet);
}
private bool AreValid(int prevTextWidth, int textboxWidth)
{
return (prevTextWidth + textboxWidth)<=100;
}
私の見解は次のとおりです。
@using (Html.BeginForm("Index", "Pregunta", FormMethod.Post, new { id = "frmNewPreguntaDesign" }))
{ @Html.TextBoxFor(m => m.PrevTextWidth)
@Html.TextBoxFor(m => m.TextboxWidth)
}
それはうまくいきます。問題は次のとおりです。ユーザーによって挿入された が でありprevTextWidth
、ユーザーが55
に挿入46
するとします。textboxWidth
ここでは、 で検証が失敗し、textboxWidth
強調表示されます。
しかし、ユーザーが prevTextWidth の値を 54 に変更するとどうなるでしょうか? 検証はt fail, but the
textboxWidth will continue to be highlighted and not valid. The only way to make it valid is to re-insert the value of
textboxWidth` を獲得しました。
2 つの属性を同時に検証し、2 番目の値を再挿入して有効にしない方法はありますか?
前もって感謝します、
マティアス