String Formatting in C# for Strongly typed view
I want to know how can I convert a strong typed v开发者_如何转开发iew Price field in to 2 digit specifier like i have got a money field in my db which converts for instance 15 into 15.0000 , i juts want to display 15.00 in the view , below is the code:
<%: Html.TextBoxFor(model =>model.Price, new { maxlength = "5", style = "width:40px;" })%>
I tried something like with no success:
<%: Html.TextBoxFor(model => String.Format("{0:n}"model.Price), new { maxlength = "5", style = "width:40px;" })%>
You can put an attribute on the model something like:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:n}")]
If you don't want to do that then you will need to use the 'old' style text box:
<%= Html.TextBox("Price", string.Format("{0:n}", Model.Price)) %>
Try this:
<%: Html.TextBoxFor(model => model.Price.ToString("0.00"), new { maxlength = "5", style = "width:40px;" })%>
Update:
You also missed a comma in your original syntax which could be all that's stopping it from working that way too. Should have been:
<%: Html.TextBoxFor(model => String.Format("{0:n}", model.Price), new { maxlength = "5", style = "width:40px;" })%>
Also, for 2 decimal places, try it like this:
<%: Html.TextBoxFor(model => String.Format("{0:0.00}", model.Price), new { maxlength = "5", style = "width:40px;" })%>
Your best bet is to use a DataAnnotations display format attribute on your view model. Something like this:
[DisplayFormat(DataFormatString = "{0:n}")]
And then use the Html.EditorFor(model => model.Price) to render the input.
Have you tried using mode.Price.ToString()
and specifying your desired format string in the ToString method?
this may help.
private DateTime hDay;
[DisplayName("Hire Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime HireDate
{
get
{
if (hDay == DateTime.MinValue)
{
return DateTime.Today;
}
else
return hDay;
}
set
{
if (value == DateTime.MinValue)
{
hDay = DateTime.Now;
}
}
}
OR
we can use this way too
@Html.TextBoxFor(m => m.MktEnquiryDetail.CallbackDate, "{0:dd/MM/yyyy}")
精彩评论