2011-06-02 7 views
55

एएसपी.एमवीसी 3 में, मैं multiline EditorFor (textarea) के लिए कॉलम और पंक्तियों को कैसे निर्दिष्ट करूं? मैं [UIHint("MultilineText")] का उपयोग कर रहा हूं, लेकिन पाठ क्षेत्र के लिए विशेषताओं को जोड़ने के तरीके पर कोई दस्तावेज नहीं मिल रहा है।मैं एएसपी.एमवीसी में एक मल्टीलाइन संपादक के कॉलम और पंक्तियों को कैसे निर्दिष्ट करूं?

वांछित HTML:

<textarea cols="40" rows="10"></textarea> 

मेरी MVC 3 मॉडल के प्रासंगिक भाग:

[UIHint("MultilineText")] 
public string Description { get; set; } 
मेरी उस्तरा cshtml की

प्रासंगिक भाग:

<div class="editor-field"> 
    @Html.EditorFor(model => model.Description) 
</div> 

क्या मैं दृश्य में हो रही है स्रोत:

<div class="editor-field"> 
    <textarea class="text-box multi-line" id="Description" name="Description"></textarea> 
</div> 

मैं पंक्तियों और स्तंभों को कैसे सेट करूं?

उत्तर

107

उपयोग TextAreaFor

@Html.TextAreaFor(model => model.Description, new { @class = "whatever-class", @cols = 80, @rows = 10 }) 

या उपयोग multi-line वर्ग के लिए शैली।

आप इसके लिए EditorTemplate भी लिख सकते हैं।

+0

बेशक! मुझे लगता है कि मैं समस्या को खत्म कर रहा था। –

5

एक विकल्प पाठ क्षेत्र

.multi-line { height:5em; width:5em; } 

देखें this entry on SO या this one. शैली सीएसएस का उपयोग करने की

Amurra के स्वीकार किए जाते हैं जवाब इस वर्ग के संकेत करने लगता है स्वचालित रूप से जोड़ दिया जाता है जब EditorFor का उपयोग कर लगता है, लेकिन आप करना होगा इसे सत्यापित करें।

संपादित करें: पुष्टि की गई, यह करता है। तो हाँ, अगर आप EditorFor का उपयोग करना चाहते हैं, तो इस सीएसएस शैली का उपयोग करके आप जो खोज रहे हैं।

<textarea class="text-box multi-line" id="StoreSearchCriteria_Location" name="StoreSearchCriteria.Location"> 
+0

में मूल पोस्टर के सवाल का जवाब देने के लिए धन्यवाद। एक फ्रेमवर्क का उपयोग करते समय 'EditorFor' का उपयोग करके इनपुट फ़ील्ड बनाता है, उदाहरण के लिए _Telerik एएसपी।नेट MVC_, 'TextAreaFor' को प्रतिस्थापित करने का विकल्प नहीं है। इसके लिए धन्यवाद। – Suncat2000

24

एएसपी.नेट एमवीसी 5 में आप [DataType(DataType.MultilineText)] विशेषता का उपयोग कर सकते हैं। यह टेक्स्टएरिया टैग प्रस्तुत करेगा।

public class MyModel 
{ 
    [DataType(DataType.MultilineText)] 
    public string MyField { get; set; } 
} 
ध्यान में रखते हुए

तो अगर आप इस तरह यह कर सकते हैं पंक्तियों निर्दिष्ट करना होगा:

@Html.TextAreaFor(model => model.MyField, 10, 20, null) 
+0

पता है कि उन्होंने यह परिवर्तन किया है। :-) –

+2

वर्तमान में यह एमवीसी 5 है, और यह काम करता है। – GSerg

+0

विशेषता 'DataType.MultilineText' एमवीसी 4 में भी काम करता है ... – NightElfik

6

यह: सही अधिभार के साथ

@Html.EditorFor(model => model.MyField, new { htmlAttributes = new { rows = 10 } }) 

या बस का उपयोग TextAreaFor मुझे कम प्रयास के साथ भी इस्तेमाल किया जा सकता है (लेकिन मैं एमवीसी 5 में हूं)

@Html.Description(model => model.Story, 20, 50, new { }) 

enter image description here

0

MVC 5

   @Html.EditorFor(x => x.Address, 
       new {htmlAttributes = new {@class = "form-control", 
        @placeholder = "Complete Address", @cols = 10, @rows = 10 } }) 
संबंधित मुद्दे