2015-09-02 24 views
-2

我需要幫助。我將代碼全部設置爲允許用戶輸入文本標題和文本正文,然後將引導放在數據庫中的該條目旁邊。Html.BeginForm不會保留Guid集

問題是guid改變了,文本輸入框變爲空白,並且每次按下提交按鈕時都需要保持不變。我的想法是我應該使用Html.BeginForm()來完成任務。請讓我知道你的想法。

HTML代碼

@using (Html.BeginForm("ACTION", "CONTROLLER", FormMethod.Post, new{Id, title, body})) 

現在我知道

new {id} 

應該

new{Id= Guid.NewGuid()} 

,但我需要控制器做分配GUID,並保持其設置,然後讓BeginForm顯示放在Url中帶有guid的文本框中的內容。

控制器

[HttpPost] 
    public ActionResult ACTION(NamedModel item) 
    { 

     if (ModelState.IsValid) 
     { 
      using (DB.DatabaseEntities db = new DB.DatabaseEntities()) 
      { 

      DB.Model newRecord = new DB.Model(); 
      newRecord.Title = item.Title; 
      newRecord.Body = item.Body; 
      newRecord.NamedId = Guid.NewGuid(); 
      db.Models.Add(newRecord); 
      db.SaveChanges(); 
     } 

     } 
     return View(item); 

基本上,我需要知道我應該投入BeginForm()。

謝謝。

+0

與Html.BeginForm()無關,保持乾淨,刪除路由屬性,並在分配新的GUID後在控制器中生成重定向結果。 –

回答

0

我想出來,並希望分享是否有其他人正在尋找這個。

Guid由控制器設置(但我發現使用hmtl.Beginform沒有區別)。

現在說,當你提交的東西時,你想顯示在URL中的GUID。

在控制器動作的結束應該是

return RedirectAction("ActionName", "ControllerName", new {Id =  Guid.NewGuid()}): 

試想URL和如何工作的,與重定向返回值將基本上一切就緒它應該在URL

方式

所以,現在我的網址爲localhost ####/ControllerName /動作/的Guid

試試看,如果你不能得到GUID來顯示的URL

謝謝