Asp.net mvc 3 如何在视图调用中保留模型内容

Asp.net mvc 3 如何在视图调用中保留模型内容,asp.net-mvc-3,view,razor,Asp.net Mvc 3,View,Razor,我有一个模型正在视图中使用,该视图可以编辑该模型。在显示视图之前,将在模型中设置外键,并且不会在视图中触摸外键。如果该字段为零,则视图显示该字段的下拉列表;如果该字段不为零,则跳过该下拉列表 @if (Model.RepairOrderId == 0) { <div class="editor-label"> @Html.LabelFor(model => model.RepairOrderId) </div> <di

我有一个模型正在视图中使用,该视图可以编辑该模型。在显示视图之前,将在模型中设置外键,并且不会在视图中触摸外键。如果该字段为零,则视图显示该字段的下拉列表;如果该字段不为零,则跳过该下拉列表

@if (Model.RepairOrderId == 0)
{
    <div class="editor-label">
        @Html.LabelFor(model => model.RepairOrderId)
    </div>

    <div class="editor-field">
        @Html.DropDownListFor(model => model.RepairOrderId, Model.Orders)
        @Html.ValidationMessageFor(model => model.RepairOrderId)
    </div>
}
else
{
}
@if(Model.RepairOrderId==0)
{
@LabelFor(model=>model.RepairOrderId)
@Html.DropDownListFor(model=>model.RepairOrderId,model.Orders)
@Html.ValidationMessageFor(model=>model.RepairOrderId)
}
其他的
{
}
当调用HTTP POST控制器方法时,模型包含所有已编辑的字段,但未触及的外键属性现在为空。我应该在
else
块中放入什么来保持非零的RepairOrderId?

@Html.HiddenFor(model=>model.RepairOrderId)

这将在html中生成一个隐藏的输入,这样modelbinder将拾取该值并在viewmodel中进行设置