मेरे पास कुछ नियंत्रक, विचारों और कार्यों आदि के साथ ASP.NET MVC प्रोजेक्ट है।

मैंने सुना है कि मुझे बिना किसी समस्या के अपने नियंत्रक कार्यों को एसिंक्स बनाने में सक्षम होना चाहिए, लेकिन मैं वास्तव में उस मामले में विचारों को वापस करने के लिए संघर्ष कर रहा हूं।

मेरे पास UpdateUser() नामक यह क्रिया है जो async है, और इसमें कुछ कार्य हैं जिन्हें मैं await कीवर्ड रखना चाहता हूं (अधिक जोड़े जाने हैं)। इन परिचालनों को करने के बाद, मुझे एक दृश्य पर वापस जाना होगा, जैसे अधिकांश नियंत्रक कार्रवाई में:

public async Task Updateuser()
{
    ApplicationUser usr =  await _userManager.FindByNameAsync(User.Identity.Name);

    string  name = usr.UserName;
    string email = usr.Email;
    string UserEmail = name + email;
    string hash = "";

    using (var sha = new System.Security.Cryptography.SHA256Managed())
    {
        // Convert the string to a byte array first, to be processed
        byte[] textBytes = System.Text.Encoding.UTF8.GetBytes(UserEmail);
        byte[] hashBytes = sha.ComputeHash(textBytes);

        // Convert back to a string, removing the '-' that BitConverter adds
        hash = BitConverter
            .ToString(hashBytes)
            .Replace("-", String.Empty).ToLower();
    }

    return View();
}

तो जिस पंक्ति में यह कहता है return View(); मेरा आईडीई रिटर्न प्रकार के बारे में गुस्से में है, क्योंकि रिटर्न प्रकार को 'टास्क' होना चाहिए।

तो मैं एसिंक विधियों का उपयोग करके अपना विचार कैसे वापस कर सकता हूं?

0
Grazosi 8 नवम्बर 2021, 01:10
मुझे संदेह है कि विधि हस्ताक्षर Task<ActionResult> (या Task<IActionResult>) होना चाहिए।
 – 
stuartd
8 नवम्बर 2021, 01:21

1 उत्तर

सबसे बढ़िया उत्तर

एमवीसी नियंत्रक की कार्रवाई से दृश्य वापस करने के लिए आपको IActionResult का उपयोग करना चाहिए। आपकी विधि को async कार्य के साथ निम्नलिखित पसंद आना चाहिए:

public async Task<IActionResult> Updateuser()
{    
    return View();
}
0
Abdus Salam Azad 8 नवम्बर 2021, 08:19
कृपया अपवोट दें अगर यह आपकी समस्या का समाधान करता है।
 – 
Abdus Salam Azad
8 नवम्बर 2021, 16:39