Мне нужно использовать удаленную проверку в моем логическом поле. У меня есть вид модели, которая выглядит следующим образом:Удаленная проверка с помощью переключателя в asp.net mvc
public class ViewModel
{
[Remote("ValidMePlease", "Home", AdditionalFields = "SomeKindOfDate", ErrorMessage = "use date with true")]
public bool IsSomething {get;set;}
public DateTime? SomeKindOfDate {get;set;}
}
Мой контроллер:
[OutputCache(Location = System.Web.UI.OutputCacheLocation.None, NoStore = true)]
public class HomeController : Controller
{
public JsonResult ValidMePlease(bool IsSomething , DateTime? SomeKindOfDate)
{
if (IsSomething && !SomeKindOfDate .HasValue)
return Json(false, JsonRequestBehavior.AllowGet);
return Json(true, JsonRequestBehavior.AllowGet);
}
}
Мое мнение:
<div class="control">
@Html.LabelFor(m => m.IsSomething , new { @class = "control-label" })
<div class="controls">
<label class="radio inline">
@Html.RadioButtonFor(m => m.IsSomething , false) No
</label>
<label class="radio inline">
@Html.RadioButtonFor(m => m.IsSomething, true) Yes
</label>
</div>
</div>
Мой визуализации вид:
<div class="control">
<label class="control-label" for="IsSomething ">Is something</label>
<div class="controls">
<label class="radio inline">
<input checked="checked" data-val="true" data-val-remote="use date with true" data-val-remote-additionalfields="*.IsSomething ,*.SomeKindOfDate" data-val-remote-url="/admin/User/ValidMePlease" data-val-required="Is something is required." id="IsSomething " name="IsSomething " type="radio" value="False" /> No
</label>
<label class="radio inline">
<input id="IsSomething " name="IsSomething " type="radio" value="True" /> Yes
</label>
</div>
</div>
Идея в том, что когда логическое поле истинно, мне нужно потребовать свидание. И в чем проблема. Когда я отправить форму его всегда проходят false
для IsSomething
в моем ValidMePlease
удаленного метода. Я думаю, это происходит потому, что только первый вход имеет data-val-
атрибутов. Любое предложение будет оценено по достоинству.
Спасибо, помогло мне много. Я использую один и тот же идентификатор для нескольких переключателей, но все еще отлично работает. – Julian
Я рад, что это помогло @ Джулиану. Вы правы, уникальный идентификатор является необязательным шагом для этого вопроса, и проверка на стороне клиента будет работать как ожидалось независимо. Я обновил свой ответ, чтобы объяснить, почему идентификатор должен быть изменен. –
@mardok - Если ответ работает на вас, то, пожалуйста, примите его. –