2012-05-29 17 views
10

मैं में निम्नलिखित है मेरी ASP.Net MVC 3 उस्तरा देखेंASP.Net MVC 3 उस्तरा जुटना स्ट्रिंग

@foreach (var item in Model.FormNotes) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.User.firstName) 
    </td> 
</tr> 
} 

कौन सा ठीक है, तथापि, मैं दोनों firstName प्रदर्शित करने के लिए स्ट्रिंग को श्रेणीबद्ध चाहते हैं काम करता है और lastName, लेकिन जब मैं इस

<td> 
    @Html.DisplayFor(modelItem => item.User.firstName + @item.User.lastName) 
</td> 

मैं निम्नलिखित त्रुटि मिलती है करने की कोशिश

टेम्पलेट्स क्षेत्र का उपयोग, संपत्ति का उपयोग, एकल आयाम सरणी मैं के साथ ही इस्तेमाल किया जा सकता ndex, या एकल-पैरामीटर कस्टम इंडेक्सर अभिव्यक्ति

क्या कोई जानता है कि रेजर व्यू में स्ट्रिंग को कैसे संयोजित किया जाए?

धन्यवाद सब कुछ।

संपादित

मेरे उस्तरा देखें एक ViewModel जो इस

public class ViewModelFormNoteList 
{ 
    public IList<Note> FormNotes { get; set; } 
} 

मैं के रूप में रॉय ने सुझाव दिया है, यहाँ में FullName गुण डाल करने के लिए चाहते हैं की तरह लग रहा स्वीकार करता है, फिर भी, मैं नहीं यकीन इसे कैसे काम करना है ???

+1

टीजी - आपके संपादन के अनुसार, आपको रॉय के सुझाव के अनुसार अपनी 'नोट' कक्षा में संशोधन करना होगा, फिर यह सभी बिना किसी बदलाव के काम करेगा (निश्चित रूप से ' @ एचटीएमएल। डिस्प्लेफॉर (modelItem => modelItem.FullName) 'part :)) यदि नोट क्लास को बदलना संभव नहीं है, तो आपको एक मैपिंग क्लास बनाना होगा जिसमें कॉन्सटेनेशन प्रॉपर्टी शामिल हो और उसके बाद अपने 'ViewModelFormNoteList' कक्षा –

+0

जिम में उपयोग करें - धन्यवाद, यह समझ में आता है। – tgriffiths

+0

जिम को +1 ...... –

उत्तर

16

DisplayFor को मानचित्र के लिए एक संपत्ति की आवश्यकता है, इसलिए एक संयोग असंभव है। आप अपने मॉडल है, जो तब संयोजन रिटर्न पर केवल पढ़ने के लिए संपत्ति FullName का पर्दाफाश हो सकता है:

public string FullName 
{ 
    get 
    { 
     return User.FirstName + " " + User.LastName; 
    } 
} 

और उसके बाद का उपयोग करें कि आपके DisplayFor में।

@Html.DisplayFor(modelItem => modelItem.FullName); 
+0

मुझे आपका समाधान पसंद है, हालांकि, मुझे यकीन नहीं है कि यह मेरे व्यूमोडेल क्लास के साथ काम करेगा, कृपया मेरा अपडेटेड प्रश्न देखें। धन्यवाद। – tgriffiths

+0

यह मेरे लिए काम किया। – steveareeno

+1

सही समाधान को ध्यान में रखना है, क्योंकि यह दृश्य का हिस्सा है –

1

आप ऐसा कर सकते हैं:

@foreach (var item in Model.FormNotes) { 
var conc = item.User.FirstName + item.User.LastName; 
<tr> 
    <td> 
     @Html.Display(conc) 
    </td> 
</tr> 
} 

या यह मॉडल में संपत्ति FullName के लिए

4

@ Html.DisplayFor (modelItem => item.FirstName) @Html बेहतर समाधान होगा। DisplayFor (modelItem => item.LastName)

संबंधित मुद्दे