2
我有一個類,其中有8個道具/ 8列在DB中。但在編輯頁面上,我不想顯示AddedDate或UserID字段,因爲我不希望用戶更改它。asp.net mvc3 UpdateModel排除屬性不起作用
public class Voucher
{
public int ID { get; set; }
public string Title { get; set; }
public string SiteName { get; set; }
public string DealURL { get; set; }
public DateTime AddedDate { get; set; }
public DateTime? ExpirationDate { get; set; }
public string VoucherFileURL { get; set; }
public Guid UserID { get; set; }
}
以下是我對編輯控制器:
// POST: /Voucher/Edit/5
[HttpPost]
public ActionResult Edit(Voucher voucher)
{
if (ModelState.IsValid)
{
string[] excludeProperties = { "AddedDate", "UserID" };
UpdateModel(ModelState, "", null, excludeProperties);
db.Entry(voucher).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(voucher);
}
在編輯頁面,當我點擊提交,我得到了以下錯誤:System.Data.SqlServerCe.SqlCeException:出現溢出同時轉換爲日期時間。
似乎像AddedDate沒有從視圖模型中排除並觸發錯誤。
請你讓我知道如何解決它?謝謝!
public ActionResult Edit([Bind(Exclude = "AddedDate")]Voucher voucher)
沒有運氣,要麼
我想我誤會了......我以爲憑證對象是相同的ModelState,它們都具有8次性,所以我。想要在保存憑證時排除ModelState中的兩個屬性 – 2012-03-17 04:47:34
如果驗證您的模型,那麼沒有modelstate狀態當您收到憑證MVC已驗證它並將驗證結果輸出到modelstate中時您不會將它傳遞迴updatemodel UpdateModel用於當你想用發佈的或URL值更新一些模型對象在這種情況下你已經被賦予了這個名爲憑證的對象,其中包含這些屬性。 – 2012-03-17 04:53:27
當用戶編輯優惠券時,我不允許他們查看或更改addedDate或UserID。所以傳入Edit控件的Voucher對象肯定不會包含addedDate或UserID的值。所以當憑證對象保存到數據庫時,會觸發錯誤。任何解決方案?希望你能理解。謝謝。 – 2012-03-17 05:05:10