同时在一个视图中查看和保存模型值

时间:2017-06-09 17:16:31

标签: asp.net asp.net-mvc entity-framework

我有一个ASP.NET MVC问题。我尝试在一个视图中同时显示和保存相同模型的相同值。

在我看来,有两个部分。一方是购买方,一方是销售方。购买和销售方面的模型相同。因为在数据库销售和购买中保存在一个表中。

现在,当我在一个文本框中输入产品名称并按下保存按钮时,它会将输入的值写入两个文本框中。

如果您有解决方案,请解决此问题。

我的观点是这样的。

@model PROJECT.TRANSACTIONS

  @using (Html.BeginForm("AddPurchase", "Transaction", FormMethod.Post, new { id = "addpurchase" }))
  *{*
              <div class="form-group div-style div-spec">
                        <div style="margin-top:2px;margin-left:18px;margin-right:0;float:left"> <label> Product : </label> </div>
                                <div style="margin-left:4px;float:left;">
                                 @Html.TextBoxFor(model => model.PRODUCT, new { @class = "form-control editor-field", style = "max-width:280px;width:280px;float:left !important" })
                         </div>
                    </div>




             <div class="form-group div-style div-price">
                        <div style="float:left; padding-left:67%;margin-right:-20px ">
                            <input type="submit" style="padding:0 20px;margin-bottom:4px;margin-top:4px; margin-left:20px" value="Submit" name="purchase_submit" class="btn btn-default" />
                        </div>
             </div>     


  *}*


    @using (Html.BeginForm("AddSale", "Transaction", FormMethod.Post, new { id = "addsale" }))
  *{*

                   <div class="form-group div-style div-spec">
                        <div style="margin-top:2px;margin-left:18px;margin-right:0;float:left"> <label> Product : </label> </div>
                                <div style="margin-left:4px;float:left;">
                                 @Html.TextBoxFor(model => model.PRODUCT, new { @class = "form-control editor-field", style = "max-width:280px;width:280px;float:left !important" })
                         </div>
                    </div>


            <div class="form-group div-style div-price">
                        <div style="float:left; padding-left:67%;margin-right:-20px ">
                            <input type="submit" style="padding:0 20px;margin-bottom:4px;margin-top:4px; margin-left:20px" value="Submit" name="sale_submit" class="btn btn-default" />
                        </div>
             </div>     

  *}*

我只有一个实体模型。

   public partial class TRANSACTIONS
    {

     [StringLength(150)]
        public string PRODUCT { get; set; }

    }

1 个答案:

答案 0 :(得分:0)

我真的需要查看代码,但它可能是textboxes name属性相同,如果在同一个表单上会导致此行为。一种处理方法是定义视图模型:

public class SomeViewModel
{
   public Entity Product { get; set;}

   public entity Sale { get; set; }
}

其次,将UI中的模型更改为SomeViewModel,然后将产品端的名称文本框呈现为:

@Html.TextBoxFor(m => m.Product.Name);

在销售方面:

@Html.TextBoxFor(m => m.Sale.Name);

UI需要一定程度的区分才能将所有内容正确映射回服务器。