我有一个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; }
}
答案 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需要一定程度的区分才能将所有内容正确映射回服务器。