Jquery集绑定模型属性MVC

时间:2014-05-31 18:56:24

标签: jquery model-view-controller model

我找不到这个问题的答案所以我发布了一些关于我正在尝试做什么的细节。应该是基本的东西,但我不能按预期工作。

我有一个MVC视图和相关的布尔模型道具在视图中绑定为隐藏字段。

点击按钮,我更新了隐藏字段的值。我可以看到值已更新,但是当我发布表单时,该值仍然是原始值,这是假的。

我在这里缺少什么?

以下示例代码:

<!--Auction Elements Click Handling -->
<script type="text/javascript">
    $(document).ready(function () {

        $("#auctionFormatLink").click(function (event) {
            $("#IsBuyNowOnly").val('False');
            return false;
            e.preventDefault();
        });

        $("#buyNowOnlyFormatLink").click(function (event) {
            $("#IsBuyNowOnly").val('True');
            return false;
            e.preventDefault();
        });

    });
</script>

<div class="wrapsemibox">
    <div class="semiboxshadow text-center">
        <img src="@Url.Content("~/Content/Themes/calypso/img/shp.png")" class="img-responsive" alt="">
    </div>
    <section class="container">
            <div id="row">
                    <div class="col-md-10 col-md-offset-1">
                        <h1 class="text-center smalltitle">
                            <span>Auction Editor</span>
                        </h1>
                        @using (Html.BeginForm("AuctionEditor", "Auction", FormMethod.Post, new { name = "frmAuctionEditor", id = "frmAuctionEditor" }))
                        { 
                            <div class="row">
                                     <div class="col-md-12">     
                                        <button class="btn btn-info btn-small" id="auctionFormatLink" />
                                        <button class="btn btn-small" id="buyNowOnlyFormatLink" />
                                    </div>
                            </div>
                            <div class="row">
                                <div class="col-md-12">    
                                    <input value="Cancel" type="submit" id="btnCancel" class="btn btn-gray btn-md">
                                    <input value="Preview Auction" type="submit" id="btnSaveChanges" class="btn btn-default btn-md">
                                </div>
                            </div>
                        }
                    </div>
            </div>
    </section>
</div>
@Html.HiddenFor(model => model.IsBuyNowOnly)

1 个答案:

答案 0 :(得分:0)

需要发布的Model属性的所有输入元素都应该在表单内部,否则默认值boolean(false)或get action设置的值将在模型中发布:

@using (Html.BeginForm("AuctionEditor", 
                       "Auction", 
                       FormMethod.Post, 
                       new { name = "frmAuctionEditor", id = "frmAuctionEditor" }))
       {
        @Html.HiddenFor(model => model.IsBuyNowOnly) 
        <div class="row">
             <div class="col-md-12">     
             <button class="btn btn-info btn-small" id="auctionFormatLink" />
             <button class="btn btn-small" id="buyNowOnlyFormatLink" />
        </div>
        </div>
        <div class="row">
           <div class="col-md-12">    
          <input value="Cancel" type="submit" id="btnCancel" class="btn btn-gray btn-md">
         <input value="Preview Auction" type="submit" id="btnSaveChanges" class="btn btn-default btn-md">
          </div>
          </div>

       }