ASP.NET MVC沒有「代碼隱藏」的概念。很簡單,您從視圖發送數據,並在您的控制器中處理。因此,如果這是POST的操作,那麼我們可以將數據發送回控制器,甚至更好的是,我們可以將該數據從文本框視圖中「隱藏」。
在你看來,你應該替換爲以下行:
@Html.HiddenFor(m => m.CreatedAt, DateTime.Now);
然後,當模型被髮布到控制器,該CreatedAt
財產將有DateTime.Now填寫
。當您發佈的東西,它必須去一個操作方法:
公共類myController的:控制器 {// 其他的東西
[HttpPost]
public ActionResult Edit(Product product)
{
product.CreatedAt // should equal the DateTime.Now set when you created the View
}
}
,或者你可以後POST
就定在控制器:
公共類myController的:控制器 {// 其他的東西
[HttpPost]
public ActionResult Edit(Product product)
{
product.CreatedAt = DateTime.Now;
}
}
您可能會遇到與相關的問題在這方面,如果你這樣做,一定要use the work around in place。
我可能會誤解你,但爲什麼不從視圖中刪除上面的代碼並在方法中設置了CreatedAt? – WooHoo
哪個方法和方法? – hotcoder
在你的控制器上你有一個方法來處理呈現視圖的get請求。你也應該在控制器上有一個方法,通常叫做同名,但是具有httppost屬性。這在處理頁面的時候,因此在這個方法中設置值。 – WooHoo