2017-04-09 134 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