2012-08-12 86 views
0

我使用的腳手架在ASP.Net,我稱之爲模型「頁面」,它具有屬性如下如何防止更新某些模型屬性?

public class Page 
{ 
    private DateTime _Created_at = DateTime.Now; 
    private bool _IsActive = true; 

    public int ID { get; set; } 

    public string Code { get; set; } 

    [Required] 
    [DisplayName("Parent Code")] 
    public string ParentCode { get; set; } 

    [Required] 
    public string Title { get; set; } 

    ************ 
} 

這裏,在創建方法,我更新代碼的屬性如下

 public ActionResult Create(Page page) 
     { 
      if (ModelState.IsValid) 
      { 
       page.Code = page.Url.Replace(" ", string.Empty); 
       page.IsActive = true; 
       db.Pages.Add(page); 

       db.SaveChanges(); 

       return RedirectToAction("Details", new { id = page.ID }); 
      } 

      return View(page); 
     } 

現在,問題是,我不希望在更新方法本代碼值的變化,我不是在編輯形成一個包括它。但是如果我更新,它仍然更新'NULL'值。

我試過[Bind(Exclude = "Code")] for Page class,但沒用。

回答

1

在編輯視圖中,您需要隱藏字段code。使用@Html.HiddenFor(model => model.Code)

+0

謝謝兄弟,它的工作。我需要知道一件事,爲什麼[綁定(排除=「代碼」)]這是行不通的?如何使用這個?隱藏是唯一的選擇嗎? – 2012-08-12 18:04:25

+0

@ShreekumarS:你有代碼的輸入字段嗎? – Mohayemin 2012-08-12 18:10:14

+0

No Dude,'Create'和'Edit'形式的'code'都沒有輸入字段 – 2012-08-12 18:14:14