У меня есть html-помощник для скрытого поля. Он привязан к байту [], и у меня нет проблем, так как он корректно отображает результат. Но вместо вспомогательной функции, если я использую тэг html, правильное значение не отображается. Вместо этого он отображает его тип.Неверное значение byte [] при использовании тега html
следующий код и изображение уточнят, что я пытаюсь сказать.
HTML код:
foreach (var path in Model.PathToImages)
{
<div class="form-group">
<div class="col-sm-6" style="vertical-align:central;">
<input type="button" value="Delete" class="btn btn-primary delete-property" name="@path.ImagePath" />
@Html.HiddenFor(m => path.ConcurrencyCheck)
<input id="@path.ImagePath" name="@path.ImagePath" type="hidden" value="@path.ConcurrencyCheck">
</div>
</div>
}
Недвижимость в моей модели:
public byte[] ConcurrencyCheck { get; set; }
Игнорирование имен и идентификаторов элемента управления (это просто воспроизвести проблему), после это HTML генерируется:
Теперь, когда изображение говорит, когда Я использую @Html.HiddenFor(m => path.ConcurrencyCheck)
, значение отображается правильно, но когда я использую <input id="@path.ImagePath" name="@path.ImagePath" type="hidden" value="@path.ConcurrencyCheck">
, это значение типа System.Byte [].
Итак, почему я не получаю значение, когда использую тег ввода html, или проблема связана с тем, как должно отображаться значение модели.
попытались преобразования значения ConcurrencyCheck в строку? Похоже, браузер не может интерпретировать это неявно и просто записывать его тип, тогда как при использовании механизма mvc для его решения он неявно преобразует значение –
да, что дало мне тот же результат –
, как вы попытаться его преобразовать? потому что в вашем цикле model.pathToImages тип var. и @ path.ConcurrencyCheck находится в html, поэтому он не разрешен движком. возможно, если вы моделируете свойство getter, возвращаемое строковое значение, а не только значение по умолчанию, оно может работать. –