मैं एक ऐसी वेबसाइट की जगह ले रहा हूं जो एक एमवीसी सिस्टम के साथ पारंपरिक एएसपीनेट में लिखी गई थी

एक तृतीय पक्ष प्रणाली जिसका हम उपयोग करते हैं और आसानी से बदल नहीं सकते हैं, वह प्रारूप के यूआरएल का उपयोग करने में सक्षम होने की उम्मीद कर रहा है

http://वेबसाइट url here/?searchtype=both¶m1=value1¶m2=value2

मुझे इसे इस पर पुनर्निर्देशित करने की आवश्यकता है

http://वेबसाइट url here/Home/FindByIdentifier?searchtype=both¶m1=value1¶m2=value2

मैं यह कैसे कर सकता हूँ? कार्रवाई के लिए अपनी तरह का रीडायरेक्ट?

यदि यह जटिल है, तो क्या Azure के भीतर इस तरह की चीज संभव है, जहां अब सिस्टम को एक ऐप सेवा के रूप में होस्ट किया जाएगा?

यह मूल रूप से तीसरे पक्ष की प्रणाली को अभी भी कार्य करने का मामला है जैसे कि कुछ भी नहीं बदला गया है

मेरा नया एप्लिकेशन रेजर विचारों के साथ सी # एमवीसी 5 का उपयोग करता है

पॉल

0
Paul 17 नवम्बर 2017, 21:53
1
एक कस्टम मार्ग को संभालना चाहिए जो आपके लिए ठीक है।
 – 
Andre Calil
17 नवम्बर 2017, 22:01
क्या ऐसे कोई उदाहरण हैं जिनके बारे में आप सोच सकते हैं कि मैं इसके लिए नया हूं?
 – 
Paul
18 नवम्बर 2017, 12:11

2 जवाब

आपके होम कंट्रोलर में कुछ इस तरह जोड़ा गया

public ActionResult Here()
{
   var url = $"Home/FindByIdentifier{Request.Url.Query}";
   return Redirect(url);
}
0
mxmissile 17 नवम्बर 2017, 22:06
क्या मैं इस विधि को खोज कहूंगा? मैं अभी जांच नहीं कर सकता
 – 
Paul
18 नवम्बर 2017, 12:10
यहां ओवरराइडिंग मुद्दा यह है कि मेरी विरासत प्रणाली को index.aspx नामक फ़ाइल खोजने की उम्मीद है? यहां सूचीबद्ध समाधानों में मेरे होमकंट्रोलर को संशोधित करना शामिल है जिसे लीगेसी सिस्टम द्वारा नहीं कहा जाएगा? यह index.aspx . को कॉल करेगा
 – 
Paul
22 नवम्बर 2017, 23:35

मुझे खेद है, लेकिन जाहिर है, रूटिंग नियम get पैरामीटर को अनदेखा करते हैं। मैंने रेगेक्स को बाधाओं के रूप में लागू करने के बिंदु पर पहुंचने का प्रयास किया है और यह वास्तव में get पैरामीटर को अनदेखा करता है।

मैं अनुरोधों को ठीक से, ठीक से रूट करने के लिए मार्गों का उपयोग करने के बारे में हूं। अगर कोई जानता है कि get पैराम्स का उपयोग करके इसे कैसे करना है, तो कृपया मुझे बताएं।

इसलिए, भले ही मैंने रीडायरेक्ट विकल्प नहीं जाने की कोशिश की, मुझे लगता है कि यह अब तक का सबसे अच्छा विकल्प है। अपने HomeController पर इस पर विचार करें:

    public IActionResult Index()
    {
        if (Request.QueryString != null && !string.IsNullOrEmpty(Request.QueryString.Value) && System.Text.RegularExpressions.Regex.IsMatch(Request.QueryString.Value, @"^\?searchtype\=both(\&.+\=.+)*$"))
            return Redirect($"/home/FindByIdentifier{Request.QueryString.Value}");

        return View();
    }

    public IActionResult FindByIdentifier()
    {
        var getParameters = Request.QueryString.Value;//?searchtype=both&param1=value1&param2=value2
        return View();
    }
0
Andre Calil 22 नवम्बर 2017, 04:42