Коригирайте въведеното от страна на клиента с помощта на RemoteValidation

Има ли някаква възможност за коригиране на входа от страна на клиента с помощта на дистанционно валидиране? Например, потребителят ще въведе датата като 010101, което означава 01-Jan-2001, може ли дистанционното валидиране да отрази/предаде коригираната стойност (010101 в 01-Jan-2001) от/към страната на клиента?

Имам сценарий, при който имам JS за форматиране на входа в правилния формат на датата. По-късно трябваше да използвам RemoteValidation. Моето дистанционно валидиране получава дата във формат ddmmyy (RemoteValidation се извиква преди JS), първо го преобразува в правилна дата и след това извършва валидиране, след което моят JS изобщо не се извиква и така 010101не се преобразува в 01-Jan-2001.

Редактиране

Има две неща, за които бих искал да получа помощ

1- Има ли все пак функция за дистанционно валидиране, която може да модифицира модела/данните, предадени й за валидиране и след това да го върне обратно към изгледа, така че потребителят да може да види модифицираната версия на модела/данните

[Изтрито:2 – Имам JavaScript за поле за дата, което форматира датата, когато фокусът е изгубен. Работи добре. Когато използвах отдалечено валидиране заедно с JS, скриптът изобщо не се извиква.]

Редактиране

Модела

public class master
{
    public string sometext { get; set; }
    public child mychild { get; set; }
}   

public class child
{
    public child()
    {
        thedate = DateTime.MaxValue;
    }
    [Remote("ValidateDate", "Test", ErrorMessage = "Invalid Date")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:mm/dd/yyyy}", NullDisplayText = "Enter Date")]
    public DateTime? thedate { get; set; }
}

Преглед

@model Models.master
@using Web.Framework

@{
    Layout = null;
    }

<html>
<head>
    <title>Test - My ASP.NET MVC Application</title>
        <script src="@Url.Scripts("jquery-1.7.1.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery-ui-1.8.11.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("modernizr-2.0.6-development-only.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("AjaxLogin.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery.validate.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("MicrosoftAjax.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("MicrosoftMvcAjax.js")" type="text/javascript"></script>

        <script src="@Url.Scripts("myScripts.js")" type="text/javascript"></script>
</head>
<body>
@using (Html.BeginForm("testSubmit", "Test"))
{
    @Html.LabelFor(m => m.sometext)
    <br />
    @Html.TextBoxFor(m => m.sometext)
    <br />

    @Html.LabelFor(m => m.mychild.thedate)
    <br />
    @Html.TextBoxFor(m => m.mychild.thedate, new { onblur = "doDate(this, '');" })
    @Html.ValidationMessageFor(m => m.mychild.thedate)

        <br />
    <input type="submit" value = "Submit me" />   
}
</body></html>

Контролер

public ActionResult testSubmit(master model)
{
    @ViewBag.Message = "OK";
    return View("response");
}

public JsonResult ValidateDate(DateTime? thedate)
{
    return Json(HttpContext.Request.QueryString["mychild.thedate"].ToString(), JsonRequestBehavior.AllowGet);
}

Моят отдалечен валидатор винаги получава null в thedate, но мога да получа достъп до стойността от низ на заявка, но стойността е неформатирана, т.е. отдалеченото валидиране се извиква преди JS, което означава, че трябва да форматирам датата първо в отдалечена функция и след това да валидирам, след като бъде валидиран, след това това входът е форматиран отново от JS и двата трябва да бъдат синхронизирани.

Сега, как мога да получа форматираната стойност във функцията Remote ИЛИ да предам форматираната стойност от функцията Remote към View?


person bjan    schedule 06.04.2012    source източник
comment
@CrazyCoderz Питаш ли за код за преобразуване на дати?   -  person bjan    schedule 06.04.2012
comment
Моля, включете код, който сте използвали, за да можем да го разгледаме. Ако дадете нещо за разглеждане, тогава можем да сме в по-добра ситуация да ви дадем правилния отговор. Колкото по-подробен е кодът, който предоставяте, толкова по-добре..   -  person Brendan Vogt    schedule 06.04.2012
comment
how can i get the formatted value in Remote function за да постигна това, внедрих това решение, но сега моят JS за форматиране на датата изобщо не се извиква   -  person bjan    schedule 09.04.2012


Отговори (1)


Тъй като не получих никакъв отговор, отговорът досега е „Не“.

person bjan    schedule 30.11.2012