當傳遞的模型從視圖到控制器的動作,返回的所有屬性都爲0。請參閱附圖。在OrderController.csMVC模式返回0對所有屬性
[HttpPost]
public ActionResult Update(Order_Detail m)
{
return View();
//OrderUpdateViewModel model = new OrderUpdateViewModel();
//model.hasError = true;
//model.Title = m.OrderDetail.Title + " Edit Status";
}
查看文件Edit.cshtml定義 Returned model
操作:
@model ADO_Fan.Models.OrderDetailViewModel
@using (Html.BeginForm("Update", "Order", FormMethod.Post))
{
<div>
@Html.LabelFor(m => m.OrderDetail.OrderID) @Html.DisplayFor(m => m.OrderDetail.OrderID)<br />
@Html.LabelFor(m => m.OrderDetail.Product.ProductName) @Html.DisplayFor(m => m.OrderDetail.Product.ProductName)<br />
@Html.LabelFor(m => m.OrderDetail.UnitPrice) @Html.DisplayFor(m => m.OrderDetail.UnitPrice)<br />
@Html.LabelFor(m => m.OrderDetail.Quantity) @Html.TextBoxFor(m => m.OrderDetail.Quantity)<br />
@Html.LabelFor(m => m.OrderDetail.Discount) @Html.DisplayFor(m => m.OrderDetail.Discount)<br />
<input type="submit" value="Update" />
</div>
}
視圖模型在OrderDetailViewModel.cs參考類中定義
using NorthwindDAL;
namespace ADO_Fan.Models
{
public class OrderDetailViewModel
{
public Order_Detail OrderDetail { get; set; }
}
}
Order_Detail
namespace NorthwindDAL
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
[Table("Order Details")]
public partial class Order_Detail
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int OrderID { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ProductID { get; set; }
[Column(TypeName = "money")]
public decimal UnitPrice { get; set; }
public short Quantity { get; set; }
public float Discount { get; set; }
public virtual Order Order { get; set; }
public virtual Product Product { get; set; }
}
}
任何意見/建議表示讚賞!
因爲你不生成比'OrderDetail.Quantity'其它性質的任何輸入。 (表單只回傳成功表單控件的名稱/值對,而'DisplayFor()'不生成表單控件)。 –
而在你視圖的模型是'OrderDetailViewModel'所以在POST方法的參數必須是相同的 - '公衆的ActionResult更新(OrderDetailViewModel米)' - 但視圖模型不應該包含一個屬性,它是一個數據模型 - 指[什麼是MVC中的ViewModel?](http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) –
謝謝Stephen!你對這兩個問題都是絕對正確的。 –