C# 预填充Html编辑器Asp.net MVC

C# 预填充Html编辑器Asp.net MVC,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,加载页面时,我想用@Html.Editor的值填充。以下是我失败的尝试: @Html.EditorFor(m => m, new { htmlAttributes = new { @class = "form-control" } }) 在剃须刀页面的顶部,我有以下内容: @model string 这是我的控制器: public ActionResult YeniBelge(string KimlikNo) { return View((object)KimlikNo);

加载页面时,我想用
@Html.Editor
的值填充。以下是我失败的尝试:

 @Html.EditorFor(m => m, new { htmlAttributes = new { @class = "form-control" } })
在剃须刀页面的顶部,我有以下内容:

@model string
这是我的控制器:

public ActionResult YeniBelge(string KimlikNo)
{
    return View((object)KimlikNo);
}
它说值不能为空


我怎样才能纠正这个错误?谢谢。

用控制器中的数据填充您的模型,然后使用

@Html.EditorFor(m=>m);

用控制器中的数据填充模型,然后使用

@Html.EditorFor(m=>m);

正如@vortex指出的,您需要使用EditorFor模板

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

如果您在页面顶部加载了模型,这将用模型字段的当前值填充表单。

就像@vortex指出的那样,您需要使用EditorFor模板

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

如果您在页面顶部加载了模型,这将用模型字段的当前值填充表单。

我怀疑您试图为您的模型分配一个可能为null的字符串,而该字符串永远不能为null。创建ViewModel类并改用它:

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"  } })

我怀疑您正试图为您的模型分配一个可能为null的字符串,而这个字符串永远不能为null。创建ViewModel类并改用它:

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"  } })

在控制器中,更改为以下内容

  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

在控制器中,更改为以下内容

  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

调试时,我可以在
YeniBelge
controller中看到该值,因此该值不为空。但它仍然给出了这个错误。不管怎样,我要试试你的建议。谢谢。如果您有异常,您应该在问题中添加(消息和堆栈跟踪)。否则无法理解是什么导致了它。它在
EditorFor
行中给出了“Value can't be null exception”。我认为@FedericoDipuma已经击中了要害,但在视图中,您无法获得模型。我试着在下面展示一个例子。但是Fedrico是第一个回答这个问题的。在调试时,我可以在
YeniBelge
controller中看到该值,因此该值不是空的。但它仍然给出了这个错误。不管怎样,我要试试你的建议。谢谢。如果您有异常,您应该在问题中添加(消息和堆栈跟踪)。否则无法理解是什么导致了它。它在
EditorFor
行中给出了“Value can't be null exception”。我认为@FedericoDipuma已经击中了要害,但在视图中,您无法获得模型。我试着在下面展示一个例子。但费德里科是第一个回答这个问题的人。