我有兩個模型數據。 請看看在Asp.net mvc中查看模型問題C#
public class StoreTransactionAngular
{
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public int StoreId { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public int TargetId { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public DateTime TransactionDate { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
[MustHaveOneElementAttribute(ErrorMessage = "At least a task is required")]
[MinLength(1)]
[EnsureOneElement(ErrorMessage = "At least a person is required")]
public List<StoreTransactionDetails> Details { get; set; }
}
public class StoreTransactionDetails
{
public int ItemId { get; set; }
public string ItemName { get; set; }
public bool IsUsed { get; set; }
public string IsUsedText { get; set; }
public double Quantity { get; set; }
public string Unit { get; set; }
}
我想我的數據存儲到另一個表
public class StoreTransaction
{
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public int StoreId { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public int TargetId { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public DateTime TransactionDate { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
//public List<StoreTransactionDetails> Details { get; set; }
public string ItemIds { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public string Quantities { get; set; }
[Required(ErrorMessageResourceType = typeof(App_GlobalResources.Labels), ErrorMessageResourceName = "Required")]
public string IsUseds { get; set; }
}
是否有可能這樣做,我有以下view.cshtml代碼
@model StoresManagement.ViewModel.StoreTransactionAngular
@{
ViewBag.Title = "Store Transaction Manage";
}
@using (Html.BeginForm(null, null, FormMethod.Post, new { @class = "ajaxForm", ng_controller = "IncomeController" }))
{
@Html.AntiForgeryToken()
<div class="panel panel-info">
<div class="panel-heading">
Transaction Data
</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-4">
@Html.DropDownListFor(x => x.StoreId, (SelectList)ViewBag.StoreList, "Select Store", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.StoreId, "", new { @class = "text-danger" })
</div>
<div class="col-sm-4">
@Html.DropDownListFor(x => x.TargetId, (SelectList)ViewBag.VendorList, "Select Vendor", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.TargetId, "", new { @class = "text-danger" })
</div>
<div class="col-sm-4">
@Html.TextBoxFor(x => x.TransactionDate, new { @class = "form-control", placeholder = "Enter Date", ng_model = "date" })
@Html.ValidationMessageFor(model => model.TransactionDate, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
Transaction Details
</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-4">
@Html.DropDownList("CategoryId", (SelectList)ViewBag.CategoryList, "Select Category", new { @class = "form-control" })
</div>
<div class="col-sm-4">
<select ng_model="ItemId" ng-options="p as p.label for p in ItemId" id="ItemId" name="ItemId" class="form-control">
<option unit="" value="">Select Item</option>
</select>
</div>
<div class="col-sm-1">
<label class="checkbox">
<input type="checkbox" ng_model="IsUsed" name="IsUsed" id="IsUsed" />
Is Used؟
</label>
</div>
<div class="col-sm-2 relative">
<input type="number" ng_model="Quantity" step="0.01" min="0" max="9999999999" id="Quantity" name="Quantity" placeholder="Quanitity" class="form-control" />
<span ng_model="Unit" class="Unit"></span>
</div>
<div class="col-sm-1">
<button id="btnAddItem" class="btn btn-success"><i class="fa fa-plus"></i></button>
</div>
</div>
<hr />
<table id="tblItems" class="table table-hover table-striped">
<thead>
<tr>
<th>Item</th>
<th width="20%">Status</th>
<th width="20%">Quantity</th>
<th width="3%"></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.Details)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ItemId)<br />
</td>
<td>
@Html.DisplayFor(modelItem => item.ItemName)<br />
</td>
<td>
@Html.DisplayFor(modelItem => item.Quantity)<br />
</td>
</tr>
}
<tr ng-repeat="ItemModel in ListItem">
<td>{{ItemModel.ItemName}}</td>
<td>{{ItemModel.IsUsedText }}</td>
<td>{{ItemModel.Quantity}} {{ ItemModel.Unit }}</td>
<td width="10%" class="text-right">
<div classn-group btn-group-justified">
<a class="btn btn-xs btn-primary" ng-click="getCustomer(ItemModel)">
<i class="glyphicon glyphicon-edit"></i>
</a>
<a class="btn btn-xs btn-warning" ng-click="deleteCustomer(ItemModel)">
<i class="glyphicon glyphicon-trash"></i>
</a>
</div>
</td>
</tr>
</tbody>
</table>
<div class="alert alert-warning">
There is no Item selected
</div>
@*@Html.HiddenFor(x => x.ItemIds)
@Html.HiddenFor(x => x.Quantities)
@Html.HiddenFor(x => x.IsUseds)*@
@Html.ValidationMessageFor(model => model.Details, "", new { @class = "text-danger" })
</div>
</div>
<button class="btn btn-primary btn-lg" type="submit"><i class="fa fa-save"> </i> Save</button>
@Html.ActionLink("Cancle", "Index", null, new { @class = "btn btn-lg btn-default", data_dismiss = "modal" })
}
這部分不起作用
@*@Html.HiddenFor(x => x.ItemIds)
@Html.HiddenFor(x => x.Quantities)
@Html.HiddenFor(x => x.IsUseds)*@
任何人都可以幫助我使這部分工作,因爲這些值是必要的。
由於提前,需要更多的細節,你可以通過評論問
'not working'的定義是什麼?視圖的模型類是'StoreTransactionAngular',它沒有這些屬性。 –
是的,我知道你可以讓我知道如何解決這個問題,我需要從兩個模型中獲取值,並且想要將這些值保存到StoreTranaction表 –
您是否嘗試執行模型綁定,其中前兩個表提供輸入,但post方法試圖綁定到第三個?如果是這樣,也許還會顯示您的發佈方法簽名。 –