Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# @当相应属性具有值时,Html.TextBoxFor()生成空文本框_C#_Asp.net_Asp.net Mvc_Razor_Asp.net Mvc 5 - Fatal编程技术网

C# @当相应属性具有值时,Html.TextBoxFor()生成空文本框

C# @当相应属性具有值时,Html.TextBoxFor()生成空文本框,c#,asp.net,asp.net-mvc,razor,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Razor,Asp.net Mvc 5,我已经创建了一个默认的ASP.NET MVC 5项目 我已将FullName属性添加到用户: public class ApplicationUser : IdentityUser { public string FullName { get; set; } } 还将此属性添加到viewmodel: public class ManageUserViewModel { [Display(Name = "Name")] public string FullName { g

我已经创建了一个默认的ASP.NET MVC 5项目

我已将FullName属性添加到用户:

public class ApplicationUser : IdentityUser
{
    public string FullName { get; set; }
}
还将此属性添加到viewmodel:

public class ManageUserViewModel
{
    [Display(Name = "Name")]
    public string FullName { get; set; }

    ...
}
并在视图上显示一个文本框:

@Html.TextBoxFor(m => m.FullName)
它工作得很好,我可以设置用户的全名。我只有一个问题:如果用户已经设置了全名,文本框仍然是空的。如何使其具有FullName属性的实际值

编辑:

这是显示带有文本框的视图的控制器:

    public ActionResult Manage(ManageMessageId? message)
    {
        ViewBag.StatusMessage =
            message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
            : message == ManageMessageId.ChangeDetailsSuccess ? "Your details have been changed."
            : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
            : message == ManageMessageId.RemoveLoginSuccess ? "The external login was removed."
            : message == ManageMessageId.Error ? "An error has occurred."
            : "";
        ViewBag.HasLocalPassword = HasPassword();
        ViewBag.ReturnUrl = Url.Action("Manage");
        return View();
    }
您需要1)获取要查找的
ApplicationUser
,2)将属性绑定到视图模型

public ActionResult Manage(ManageMessageId? message)
{
    ViewBag.StatusMessage =
        message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
        : message == ManageMessageId.ChangeDetailsSuccess ? "Your details have been changed."
        : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
        : message == ManageMessageId.RemoveLoginSuccess ? "The external login was removed."
        : message == ManageMessageId.Error ? "An error has occurred."
        : "";
    ViewBag.HasLocalPassword = HasPassword();
    ViewBag.ReturnUrl = Url.Action("Manage");

    // Get the currently logged on user
    var user = UserManager.FindById(User.Identity.GetUserId());

    // Copy the value of FullName to the view model
    var vm = new ManageUserViewModel {
        FullName = user.FullName
    };
    return View(vm);
}

返回视图时,是否在控制器中正确映射它?您必须从
应用程序用户
中获取
全名
,并将其放在视图模型中。在.cshtml中设置断点并检查Model@JLe字体恐怕我没有。我该怎么做?我添加了控制器方法,该方法返回包含文本框的视图。@插图:设置断点后,如何在调试cshtml时访问模型?只需使用DirectInput窗口并键入model.FullName即可