我有一个模型。
public class PatientACOModel
{
public int EncounterId { get; set; }
public int PatientId { get; set; }
public int EMPIID { get; set; }
public int PopulationPatientID { get; set; }
public string EditAddOrEditCurrent { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime? DateOfBirth { get; set; }
//[UIHint("_PhoneNumFormatter")]
public string Phone { get; set; }
}我想特别格式化我的电话号码。我只想在我的电话号码和可能的其他电话号码上加上一个UIHint。我不希望所有的字符串都格式化。
我正在尝试这样的事情...
@Model String
@if (Model != null) {
String.Format("{0: (###) ###-####}", double.Parse(Model.ModelMetadata.Get));
}这将是我的UIHint中引用的已被注释掉的显示模板。当我这样做的时候,我的字符串都不会出现。我做错了什么?
在我的display模板中,如何获得要解析的字符串,然后进行格式化?
发布于 2013-02-14 03:51:28
首先,我将检查是否在以下位置之一定义了_PhoneNumFormatter:
~/Views/Shared/DisplayTemplates/_PhoneNumFormatter.cshtml
~/Views/<Controller>/DisplayTemplates/_PhoneNumFormatter.cshtml接下来,我认为您希望直接从Model属性格式化字符串值:
@model String
@if (!String.IsNullOrWhiteSpace(Model))
{
@String.Format("{0: (###) ###-####}", Convert.ToInt64(Model))
}使用UIHint属性应该可以很好地工作,我刚刚签入了一个示例应用程序。
代码假设您所在地区的数字不是以0开头,并且Model属性将包含仅包含数字字符的字符串,如果不是这样,您应该改进Convert.ToInt64部分。
希望能有所帮助。
https://stackoverflow.com/questions/14861238
复制相似问题