传递到视图

时间:2016-08-16 16:48:34

标签: c# asp.net-mvc

我甚至不知道这是怎么可能的,但我隐藏的输入值并不是模型中的实际值。

这是一个局部视图,其中包含一个添加到dom的表单。 dom中没有其他形式或输入。

下面显示了2个不同的guids。添加以查看调试器外部的值。我还会在返回部分之前看到2个不同的值调试。

@Html.DisplayFor(m => m.ID)
@Html.DisplayFor(m => m.StaffID)

现在我也有了

@Html.HiddenFor(m => m.StaffID)
@Html.HiddenFor(m => m.ID)

当我检查dom时,ID和StaffID都包含StaffID,但呈现给视图的模型有2个不同的guid。

这是加载视图的jquery

$(document).on('click', 'span[data-target="#modal-facility-staff-schedule-edit"]', function (e) {
    e.preventDefault();
    WebUI.showPleaseWait();
    var id = $(this).closest('tr').attr('id');
    $.ajax({
        type: "GET",
        url: "../Management/FacilityStaffScheduleEdit",
        data: { id: id },
        success: function (data) {
            $('body').append(data);
            $('#modal-facility-staff-schedule-edit').modal('toggle');
            WebUI.reloadMasking();
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            WebUI.handleError(XMLHttpRequest, textStatus, errorThrown);
        },
        complete: function () {
            WebUI.hidePleaseWait();
        }
    });
});

我已添加以下内容以查看

@Html.HiddenFor(m => m.ID)
@Html.HiddenFor(m => m.StaffID)
<input id="ID" name="ID" type="hidden" value="@Model.ID">
<input id="StaffID" name="StaffID" type="hidden" value="@Model.StaffID">

DOM结果(怎么样?!?!?!?)

<input id="ID" name="ID" type="hidden" value="535e8d84-e770-48ee-8e82-56daa63fd603">
<input id="StaffID" name="StaffID" type="hidden" value="535e8d84-e770-48ee-8e82-56daa63fd603">
<input id="ID" name="ID" type="hidden" value="da6d7e8b-3b90-41dc-88d8-98748154cba1">
<input id="StaffID" name="StaffID" type="hidden" value="535e8d84-e770-48ee-8e82-56daa63fd603">

1 个答案:

答案 0 :(得分:0)

我找到了答案。如果有人想知道为什么,请看这篇文章。

https://blogs.msdn.microsoft.com/simonince/2010/05/05/asp-net-mvcs-html-helpers-render-the-wrong-value/