私はこの問題を抱えています:
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 thetextboxWidth will continue to be highlighted and not valid. The only way to make it valid is to re-insert the value oftextboxWidth` を獲得しました。
2 つの属性を同時に検証し、2 番目の値を再挿入して有効にしない方法はありますか?
前もって感謝します、
マティアス