MVC HTML @ Beginform +在布局视图中提交包含现有隐藏字段值的表单

时间:2012-09-14 12:38:58

标签: javascript asp.net-mvc razor

在我的共享_Layout.cshtml视图中,我有一个隐藏字段,我希望在多个页面中保留一个值。现在在其中一个页面中,我必须提交一个需要特定隐藏字段值的表单。我想我只需要传递来自_Layout.cshtml的hiddenfield值,但不知道如何分配它,下面的工作但是我正在创建一个额外的隐藏字段并使用隐藏字段值分配它的值我的_Layout.cshtml。

是否可以取消使用额外的隐藏字段?

感谢。

<script type="text/javascript">
    ($('#p1').val($('#playerChoice_1').val()));
</script>

    @using (Ajax.BeginForm(new AjaxOptions { OnSuccess = "LoadThankYou()" }))
        {
            @Html.ValidationSummary(true)
            <fieldset >

                <div style="FILTER:" class="fb-grouplabel fb-item fb-100-item-column">
                    @Html.LabelFor(model => model.Name)
                </div>
                <div class="fb-input-box editor-field">
                    @* <input id="item7_text_1" class="" name="text7" maxlength="254" placeholder="Enter your name"
                                       autocomplete="off" data-hint="" type="text" />*@
                    @Html.EditorFor(model => model.Name)
                    @Html.ValidationMessageFor(model => model.Name)
                </div>               

                <div style="FILTER:" class="fb-grouplabel fb-item fb-100-item-column">
                    @Html.LabelFor(model => model.Email)
                </div>
                <div class="fb-input-box editor-field">
                    @Html.EditorFor(model => model.Email)
                    @Html.ValidationMessageFor(model => model.Email)
                </div>

                <div style="FILTER:" class="fb-grouplabel fb-item fb-100-item-column">
                    @Html.LabelFor(model => model.Contact)
                </div>
                <div class="fb-input-box editor-field">
                    @Html.EditorFor(model => model.Contact)
                    @Html.ValidationMessageFor(model => model.Contact)
                </div>

                <div style="FILTER:" class="fb-grouplabel fb-item fb-100-item-column">
                    @Html.LabelFor(model => model.PersonalID)
                </div>
                <div class="fb-input-box editor-field">
                    @Html.EditorFor(model => model.PersonalID)
                    @Html.ValidationMessageFor(model => model.PersonalID)
                </div>

                <input type="hidden" id="p1" name="Choice_1" />

                <div style="MIN-HEIGHT: 1px" id="fb-submit-button-div" class="fb-item-alignment-left fb-footer">
                    @* <input style="BACKGROUND-IMAGE: url(theme/default/images/btn_submit.png)"
                            id="fb-submit-button" class="fb-button-special" type="submit" value="Submit" />*@
                    <input type="submit" value="Submit" />
                </div>
            </fieldset>
        }

1 个答案:

答案 0 :(得分:2)

ready事件上执行此操作。因此它将在DOM完成加载后执行。

<script type="text/javascript">
  $(function(){
     $('#p1').val($('#playerChoice_1').val());
  });
</script>

如果您想避开隐藏字段,并且想要在所有页面中使用此值,您可以考虑将值存储在会话变量中一次,并在需要时在您的操作方法中访问它。