2013-08-30 2 views
2

Я хочу, чтобы связать логическое свойство скрытого контроллера ввода, но выход HTML код был ошибкабулевой модель связывание вопрос в Mvc 4

кода следующим образом:

public class TestModel 
{ 
    public bool IsOk { get; set; } 
    public bool IsSuccess { get; set; } 
} 

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new TestModel { IsOk = false, IsSuccess = true }); 
    } 
} 

<h2>Index</h2> 
<p>@Model.IsOk</p> 
<p> 
    <input type="hidden" value="@Model.IsOk" /> 
</p> 
<p> 
    <input type="hidden" value="@Model.IsSuccess" /> 
</p> 

Html Выход

<h2>Index</h2> 
<p>False</p> //works 

<p> 
    <input type="hidden" /> //where is value? 
</p> 

<p> 
    <input type="hidden" value="value" /> //wath's this? 
</p> 

Но если я использую ToString(), все выше работает хорошо, так это моя ошибка?

+4

возможно дубликат [Почему мой скрытый ввод записывания: значение = «значение», а не истина/ложь?] (Http://stackoverflow.com/questions/13455270/why-is-my-hidden- input-writing-value-value-than-of-true-false) – nemesv

ответ

3

В HTML, когда у вас есть атрибут, который действует как вкл/выкл или истина/ложь переключателя вы удалите атрибут, когда атрибут выключен/false, и добавьте атрибут с тем же значением, что и имя атрибута, когда атрибут включен/прав. Razor предоставляет вам такую ​​функциональность, как вы уже испытали.

Возможно, вы намереваетесь использовать Html.HiddenFor?

<p> 
    @Html.HiddenFor(m => m.IsOk) 
</p> 
<p> 
    @Html.HiddenFor(m => m.IsSuccess) 
</p> 

Это произведет этот HTML, где у вас есть value="False" и value="True", как вы ожидаете:

<p> 
    <input data-val="true" data-val-required="The IsOk field is required." 
     id="IsOk" name="IsOk" type="hidden" value="False" /> 
</p> 
<p> 
    <input data-val="true" data-val-required="The IsSuccess field is required." 
     id="IsSuccess" name="IsSuccess" type="hidden" value="True" /> 
</p> 

Кроме того, модель связующий будет иметь возможность редиректа просмотре свойств модели.

2

атрибуты Html требует объекты строка Это не конвертируются автоматически

Таким образом, вы должны использовать ToString()

0

Пожалуйста, попробуйте это.

$('#controlId').is(":checked"); 
+0

Этот синтаксис используется для управления флажком при привязке булевского значения через jquery. –

Смежные вопросы