ऐसा प्रतीत होता है कि Asp.Net MVC2 ऐप्स में Html.RenderAction
को कॉल करना पृष्ठ के माइम प्रकार को बदल सकता है यदि बाल क्रिया का प्रकार पैरेंट एक्शन के मुकाबले अलग है।Asp.Net MVC2 रेंडरएक्शन पृष्ठ माइम प्रकार बदलता है?
नीचे दिया गया कोड (एमवीसी 2 आरटीएम में परीक्षण), जो मुझे समझ में आता है, Home/Index
पर कॉल करते समय application/json
का परिणाम लौटाएगा। पृष्ठ को डिस्प्ले करने के बजाय, ब्राउजर बार्फ़ करेगा और आपको पूछेगा कि क्या आप इसे डाउनलोड करना चाहते हैं।
मेरा प्रश्न: क्या मुझे कुछ याद आ रही है? क्या यह एक बग है? यदि हां, तो सबसे अच्छा कामकाज क्या है?
नियंत्रक:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData[ "Message" ] = "Welcome to ASP.NET MVC!";
return View();
}
[ChildActionOnly]
public JsonResult States()
{
string[] states = new[] { "AK", "AL", "AR", "AZ", };
return Json(states, JsonRequestBehavior.AllowGet);
}
}
दृश्य:
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
<script>
var states = <% Html.RenderAction("States"); %>;
</script>
यह काम करेगा ... ऐसा लगता है कि एक बच्चे की कार्रवाई पूरे पृष्ठ के ContentType को बदलने में सक्षम नहीं होना चाहिए। –
ध्यान दें कि जावास्क्रिप्टसेरियलाइज़र()। सीरियलाइज जेसन विधि के विपरीत, एम्बेडेड कोट्स को सही ढंग से क्रमबद्ध नहीं करता है। आपको कुछ की आवश्यकता होगी: Func safeForJson = (s) => { वापसी s.NotNull()। बदलें ("\" "," \\\ ""); }; –
क्षमा करें, NotNull विधि मेरा है लेकिन केवल यह सुनिश्चित करता है कि इनपुट स्ट्रिंग शून्य (नाच) नहीं है। –