के लिए किया जाता है, मैंने हाल ही में एएसपी.नेट एमवीसी डिस्प्ले टेम्पलेट्स के साथ एक मुद्दा मारा है। कहते हैं कि यह मेरे मॉडल है:एएसपी.नेट एमवीसी डिस्प्ले टेम्पलेट का उपयोग पूर्णांक
public class Model
{
public int ID { get; set; }
public string Name { get; set; }
}
इस नियंत्रक है:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new Model());
}
}
और यह मेरा दृष्टिकोण है:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<DisplayTemplateWoes.Models.Model>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Index</title>
</head>
<body>
<div>
<%: Html.DisplayForModel() %>
</div>
</body>
</html>
अगर मैं किसी कारण से सभी स्ट्रिंग्स के लिए एक प्रदर्शन टेम्पलेट की जरूरत है मैं इस तरह एक स्ट्रिंग.एक्सएक्स आंशिक दृश्य बनाउंगा:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<%: Model %> (<%: Model.Length %>)
और यहां समस्या है - रनटाइम पर निम्नलिखित अपवाद फेंक दिया गया है: "शब्दकोश में दिया गया मॉडल आइटम 'System.Int32' प्रकार का है, लेकिन इस शब्दकोश के लिए 'System.String' प्रकार के मॉडल आइटम की आवश्यकता है।
ऐसा लगता है कि स्ट्रिंग.एक्सएक्स मॉडल मॉडल की पूर्णांक और स्ट्रिंग प्रॉपर्टी दोनों के लिए उपयोग किया जाता है। मुझे उम्मीद थी कि इसे केवल स्ट्रिंग प्रॉपर्टी के लिए इस्तेमाल किया जाए - इसके बाद इसे स्ट्रिंग.स्कैक्स नाम दिया गया ऑब्जेक्ट.एक्सएक्स या इंट 32.एक्सएक्स।
क्या यह डिज़ाइन द्वारा है? यदि हां - क्या यह कहीं दस्तावेज है? यदि नहीं - क्या इसे एक बग माना जा सकता है?