Asp.net mvc MVC@html.textbox用于使用Guid默认值预填充

Asp.net mvc MVC@html.textbox用于使用Guid默认值预填充,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,guid,html.textboxfor,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Guid,Html.textboxfor,我的控制器: [HttpGet] public ActionResult AddEstablishment() { return View("AddEstablishment",new EstablishmentModel()); } public class EstablishmentModel { [Display(Name = "Establishment ID")] public Guid Establi

我的控制器:

 [HttpGet]
 public ActionResult AddEstablishment()
 {     
    return View("AddEstablishment",new EstablishmentModel());
 }
public class EstablishmentModel
{
    [Display(Name = "Establishment ID")]
    public Guid EstablishmentId { get; set; }
    .............
 @Html.TextBoxFor(x => x.EstablishmentId, new { @id = "inputEstGuid", @class = "input input-xlarge", @placeholder = "5C3B1CBC-2574-4E2A-A9FA-A8CA0041AB86" })
我的型号:

 [HttpGet]
 public ActionResult AddEstablishment()
 {     
    return View("AddEstablishment",new EstablishmentModel());
 }
public class EstablishmentModel
{
    [Display(Name = "Establishment ID")]
    public Guid EstablishmentId { get; set; }
    .............
 @Html.TextBoxFor(x => x.EstablishmentId, new { @id = "inputEstGuid", @class = "input input-xlarge", @placeholder = "5C3B1CBC-2574-4E2A-A9FA-A8CA0041AB86" })
我的建立视图:

 [HttpGet]
 public ActionResult AddEstablishment()
 {     
    return View("AddEstablishment",new EstablishmentModel());
 }
public class EstablishmentModel
{
    [Display(Name = "Establishment ID")]
    public Guid EstablishmentId { get; set; }
    .............
 @Html.TextBoxFor(x => x.EstablishmentId, new { @id = "inputEstGuid", @class = "input input-xlarge", @placeholder = "5C3B1CBC-2574-4E2A-A9FA-A8CA0041AB86" })
结果:

 [HttpGet]
 public ActionResult AddEstablishment()
 {     
    return View("AddEstablishment",new EstablishmentModel());
 }
public class EstablishmentModel
{
    [Display(Name = "Establishment ID")]
    public Guid EstablishmentId { get; set; }
    .............
 @Html.TextBoxFor(x => x.EstablishmentId, new { @id = "inputEstGuid", @class = "input input-xlarge", @placeholder = "5C3B1CBC-2574-4E2A-A9FA-A8CA0041AB86" })

我的文本框正在预填充Guid默认值

00000000-0000-0000-0000-00000000

我如何避免它?

请注意,我向视图传递模型实例的原因很明显。

这不应该起作用吗

 public Guid? EstablishmentId { get; set; }

当您最初显示视图时,只需确保该值为null。

您不需要将模型传递到视图中,如果不传递它,它将起作用

如果您确实必须这样做,请执行以下操作:

private string _establishmentIdAsString = string.Empty;
[Display(Name = "Establishment ID")]
public string EstablishmentIdAsString
{
    get
    {
        return _establishmentIdAsString;
    }
    set
    {
        _establishmentIdAsString = value;
        EstablishmentId = new Guid(value);
    }
}

让我试试看,出于某些原因,我必须将模型传递给视图。如果它是一个空模型,您不必这样做,它只是在呈现视图时实例化一个新模型。不需要额外的检查来确保值是否为null。只需更改为可为null的Guid就可以了。是的,我并没有建议添加其他代码。我只是想让你,作为一个程序员,当你把它绑定到你的文本框时,知道这个值是空的。