C# @当相应属性具有值时,Html.TextBoxFor()生成空文本框
我已经创建了一个默认的ASP.NET MVC 5项目 我已将FullName属性添加到用户: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
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即可