2

我的控制器:MVC @ html.textboxfor GUID为默认值预填充

[HttpGet] 
public ActionResult AddEstablishment() 
{  
    return View("AddEstablishment",new EstablishmentModel()); 
} 

我的模型:

public class EstablishmentModel 
{ 
    [Display(Name = "Establishment ID")] 
    public Guid EstablishmentId { get; set; } 
    ............. 

我AddEstablishment查看:

@Html.TextBoxFor(x => x.EstablishmentId, new { @id = "inputEstGuid", @class = "input input-xlarge", @placeholder = "5C3B1CBC-2574-4E2A-A9FA-A8CA0041AB86" }) 

结果:

enter image description here

我的文本框与的GUID默认值

00000000-0000-0000-0000-000000000000

如何避免它预先填充?

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

回答

4

不应该工作吗?

public Guid? EstablishmentId { get; set; } 

只要确保值为null当你最初显示您的视图。

+0

简短,这工作。 – ssilas777 2013-02-28 14:50:39

+0

无需额外的检查来确保值是否为空。只是改变为可空的Guid就可以做到这一点。 – ssilas777 2013-02-28 15:07:25

+0

是的,我没有建议额外的代码。我只是确保你作为一个程序员知道,当你将它绑定到你的文本框时,它的值将是空的。 – Ellesedil 2013-02-28 15:09:42

1

你不需要模型传递到视图,如果你不把它传递

如果你真的要,为此,它会工作:

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

让我试试看,我必须通过模型来查看某些原因。 – ssilas777 2013-02-28 14:43:05

+0

如果它不是一个空模型,它只是在渲染视图时创建一个新模型 – 2013-02-28 14:43:58