2012-05-24 10 views
29

मैं मुद्रा स्वरूपण करने के लिए एक HTML.EditorFor टेक्स्टबॉक्स को प्रारूपित करने का प्रयास कर रहा हूं, मैं इसे इस थ्रेड String.Format for currency on a TextBoxFor से दूर करने का प्रयास कर रहा हूं। हालांकि, मेरा टेक्स्ट अभी भी 0.00 रूपए के रूप में दिखाई देता है जिसमें कोई मुद्रा स्वरूपण नहीं है।मुद्रा स्वरूपण एमवीसी

<div class="editor-field"> 
     @Html.EditorFor(model => model.Project.GoalAmount, new { @class = "editor-  field", Value = String.Format("{0:C}", Model.Project.GoalAmount) }) 

मैं क्या कर रहा हूँ के लिए कोड है, और यहाँ वेबसाइट में उस क्षेत्र में ही निश्चित रूप से संपादक क्षेत्र div के भीतर निहित के लिए एचटीएमएल है।

<input class="text-box single-line valid" data-val="true" 
data-val-number="The field Goal Amount must be a number." 
data-val-required="The Goal Amount field is required." 
id="Project_GoalAmount" name="Project.GoalAmount" type="text" value="0.00"> 

किसी भी मदद की सराहना की जाएगी, धन्यवाद!

उत्तर

65

आप [DisplayFormat] विशेषता के साथ अपने GoalAmount दृश्य मॉडल संपत्ति को सजाने कर सकते हैं:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")] 
public decimal GoalAmount { get; set; } 

और बस ध्यान में रखते हुए:

@Html.EditorFor(model => model.Project.GoalAmount) 

EditorFor सहायक की दूसरा तर्क बिल्कुल भी नहीं करता है आपको क्या लगता है यह करता है। यह आपको संपादक टेम्पलेट में अतिरिक्त व्यूडेटा पास करने की अनुमति देता है, यह HTMLAttributes नहीं है।

@Html.TextBox(
    "", 
    string.Format("{0:c}", ViewData.Model), 
    new { @class = "text-box single-line" } 
) 

और उसके बाद:

@Html.EditorFor(model => model.Project.GoalAmount, "Currency") 

या [UIHint] का उपयोग करें:

[UIHint("Currency")] 
public decimal GoalAmount { get; set; } 

और फिर

एक और संभावना है मुद्रा के लिए एक कस्टम संपादक टेम्पलेट (~/Views/Shared/EditorTemplates/Currency.cshtml) लिखने के लिए है:

@Html.EditorFor(model => model.Project.GoalAmount) 
+1

बहुत अच्छा काम किया, धन्यवाद! :) –

+0

पेंस के बिना मुद्रा (पाउंड) के लिए प्रारूप स्ट्रिंग क्या है? मुझे अभी तक यह प्रतीत नहीं होता है। धन्यवाद। – Doomsknight

+1

@Doomsknight, क्या आपने '" {0: C0} "'? –