2017-04-09 60 views
0

我想填充頁面加載時的值@Html.Editor。這裏是我的失敗嘗試:預填Html編輯器Asp.net MVC

@Html.EditorFor(m => m, new { htmlAttributes = new { @class = "form-control" } }) 

在剃刀頁面的頂部,我有這樣的:

@model string 

這是我的控制器:

public ActionResult YeniBelge(string KimlikNo) 
{ 
    return View((object)KimlikNo); 
} 

它說值」 t爲空。

我該如何解決這個問題?謝謝。

+0

的[Html.Editor不使所述值]可能的複製(http://stackoverflow.com/questions/4809275/html-editor-not-rendering-the-value) –

回答

1

我懷疑你試圖給你的模型分配一個可能爲空的字符串,它永遠不能爲空。創建一個視圖模型類,並使用它來代替:

public class MyViewModel { 
    public string TCKimlikNo { get; set; } 
} 

public ActionResult YeniBelge(string KimlikNo) 
{ 
    return View(new MyViewModel { KimlikNo = KimlikNo ?? "My Default Value" }); 
} 

然後在您的視圖:

@model MyViewModel 

@Html.EditorFor(m => m.TCKimlikNo, new { htmlAttributes = new { @class = "form-control" } }) 
+0

在調試時,我可以在'YeniBelge'控制器中看到該值,所以該值不爲空。但它仍然給出了這個錯誤。無論如何,我會嘗試你的建議。謝謝。 – jason

+0

如果你有一個例外,你應該添加(消息和堆棧跟蹤)的問題。否則不可能瞭解是什麼導致它。 –

+0

它在「EditorFor」行中給出了「Value can not be null exception」。 – jason

1

填寫與控制器的數據模型,然後使用

@Html.EditorFor(m=>m); 
+0

我編輯我的問題。謝謝。 – jason

1

像@vortex指出,你需要使用EditorFor模板。

@Html.EditorFor(model => model.TCKimlikNo, new { htmlAttributes = new { @class = "form-control" } }) 

如果您已將模型加載到頁面的頂部,則會使用模型字段的當前值填寫表單。

+0

我編輯了我的問題。謝謝。 – jason

1

在你的控制器更改爲以下。

public class KimlikNoViewmodel 
    { 
     public string KimlikNo { get; set; } 
    } 

    public ActionResult YeniBelge (string KimlikNo) 
    { 
     KimlikNoViewmodel viewModel = new KimlikNoViewmodel(); 
     viewModel.KimlikNo = KimlikNo; 

     return View(viewModel); 
    } 

在您的視圖中我懷疑您沒有找到模型。調用模型時需要包含您的項目名稱。

@model YourProjectName.Controllers.KimlikNoViewmodel 

我真的認爲我們節省下查看模型文件中的模型文件夾中創建視圖模型,然後你會叫,而不是下面。

@model YourProjectName.Models.KimlikNoViewmodel