Это действительно странно, по какой-то причине идентификатор ViewModel отображается как нулевой внутри представления.Я отладил приложение и проверил, что модель представления действительно отображается правильно (с помощью AutoMapper) и все в порядке.Но когда я делаю @ Model.Id, он рендерится как ноль, а когда я оповещаю значение с помощью jQuery, я получаю «ноль».Итак, что происходит?
<div id="commentBox">
@using (Html.BeginForm("Comment", "Item", new { itemId = Model.Id } ))
{
<span class="greenText">answer</span>
<span id="hiddenForId">@this.Hidden(x => x.Id).Id("idPlaceHolder")</span>
<span id="commentInputBox">@this.TextBox(x=>x.CommentText).Id("commentField")</span>
<span id="commentButton">@this.SubmitButton("").Id("commentSubmit").Class("okButton")</span>
}
</div>
<div style="clear:both"></div>
</div>
</div>
<script type="text/javascript">
$(function () {
alert($("idPlaceHolder").html());
$("#commentSubmit").click(function () {
var dataObj = { 'commentText': $("#commentField").val(), 'itemId': $("idPlaceHolder").html() }
$.ajax({
url: '/Item/Comment',
data: dataObj,
type: 'POST',
success: function (result) {
if (result.redirectTo != null && result.redirectTo != '') {
window.location.href = result.redirectTo;
} else {
alert(result.error);
}
}
});
return false;
});
});
</script>
PS: на заметке, как вы говорите бланку, который не нужно публиковать и о котором позаботились?Я просто не могу вспомнить ... Это определенно что-то отличное от return false;