2011-01-26 98 views
1

我在使HTML頁面呈現期望HTML時出現問題。Html.Editor未呈現值

下面是這種情況:

// assign the value 
    ViewBag.BeginDate = seaBeginEnd.beginDate; 

//View 
    @Html.Editor("Begin", ViewBag.BeginDate as DateTime?) 

//HTML Source 
    <div class="editor-field"> 
    <input class="text-box single-line" id="Begin" name="Begin" type="text" value="" /> 
    </div> 

我散斑看到2011年1月19日12:00:00 AM的值是ViewBag.BeginDate的價值,任何見解。

感謝您的幫助!

回答

3

我被蒙上了斑駁見2011年1月19日12:00:00 AM的值,它是

無法通過傳遞Begin作爲第一個參數想到這樣的事情ViewBag.BeginDate

的價值到 Html.Editor幫手。第二個參數不符合你的想法。它只是將一些額外的視圖數據發送到編輯器模板,但是您綁定的原始值被稱爲 Begin,因此您應該爲其分配值。就像這樣:

public ActionResult Index() 
{ 
    ViewBag.Begin = DateTime.Now; 
    return View(); 
} 

,然後:每次看到

@Html.Editor("Begin") 

顯然有人使用ViewBag/ViewData的,而不是強類型的輔助,我覺得在推薦視圖模型和強類型的輔助義務。例如:

型號:

public class MyViewModel 
{ 
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
    public DateTime Date { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new MyViewModel 
     { 
      Date = DateTime.Now 
     }); 
    } 
} 

和相應的強類型的視圖:

@model AppName.Models.MyViewModel 
@Html.EditorFor(x => x.Date) 
+0

謝謝,我從來沒有想到,我應該通過ViewBag的名字屬性作爲一個字符串。這比我想象的要容易得多。順便說一下,我使用強類型助手,但我有一些信息超出強類型,我通過ViewBag。感謝你的幫助!!! – roncansan 2011-01-26 20:12:21