MapSpaFallbackRoute सशर्त स्थापना मैं एक परियोजना शामिल है जो एक से अधिक एकल पृष्ठ आवेदन एक भी नेट कोर 1.0 वेब अनुप्रयोग पर होस्ट कर रहे हैं कि विकासशील कर रहा हूँ।नेट कोर MVC रूटिंग: प्रति नियंत्रक
लक्ष्य प्रत्येक एसपीए विभाजन ताकि वे सभी अलग से मौजूद हैं, अपने स्वयं के दृश्य और नियंत्रक के साथ एक है।
स्टार्टअप सीएस में, माइक्रोसॉफ्ट.एस्पनेट कॉर। एसपी सर्विसेज मैपस्पाफॉलबैक रूट का उपयोग एसपीए के गहरे लिंक (इस मामले में कोणीय 2) को पार करने के लिए कर रहा है, इसलिए एमवीसी उलझन में नहीं आती है और पेज रीफ्रेश पर 404 फेंक देती है।
मैं एक समय में एक एसपीए के लिए काम कर रहा हूं जब मैं नियंत्रक मैन्युअल रूप से MapSpaFallbackRoute में सेट करता हूं, लेकिन मैं प्रत्येक एसपीए नियंत्रक के लिए इसे सशर्त रूप से सेट करने का तरीका नहीं समझ सकता।
मैं यह सोचते कर रहा हूँ जहाँ मैं करने की आवश्यकता है कि Mapwhen() और रन() का एक संयोजन मुझे मिल जाएगा, लेकिन मैं वाक्य रचना सही पाने के लिए नहीं कर पा रहे।
स्पा मान लिया जाये कि, 'Dash2', 'Dash1' नाम दिया गया है आदि निम्नलिखित फ़ॉलबैक मार्ग Dash1 के लिए पूरी तरह से काम करता है:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Dash1", action = "Index" });
});
मैं इस की कोशिश की है:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
app.Map("/Dash1", HandleDash1);
}
private static void HandleDash1(IApplicationBuilder app)
{
app.UseMvc(routes =>
{
routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Dash1", action = "Index" });
});
}
}
.. लेकिन फिर जब मैं डैश 1 पर नेविगेट करता हूं और पृष्ठ को रीफ्रेश करने का प्रयास करता हूं, तो ब्राउज़र सभी http अनुरोधों में '/ Dash1 /' को प्रीपेड करता है और सब कुछ तोड़ देता है।
पूरी तरह से अनुमान लगा रहा है, लेकिन आपने 'मार्गों .MapSpaFallbackRoute ("{नियंत्रक}/स्पा-फ़ॉलबैक", नया {action = "अनुक्रमणिका"}) की कोशिश की है;' आपके पहले दृष्टिकोण में? –
मैंने इसे आज़माया लेकिन पेज रीफ्रेश पर अभी भी 404 मिल रहा है।पहला स्ट्रिंग पैरा सिर्फ मार्ग का नाम है, लेकिन ऐसा लगता है कि इसे ऐसा करना संभव होना चाहिए; बस वर्तमान नियंत्रक को फॉलबैक के रूप में पंजीकृत करें। – David