मैं इस समस्या को हल करने के लिए संघर्ष कर रहा हूं। मेरी स्थानीय मशीन (विन 7/वीएस -2010/आईआईएस 7.5) और एक और समान डेवलपर मशीन पर, निम्न कोड 500 स्टेटस कोड देता है, और प्रतिक्रिया टेक्स्ट कहता है "निर्दिष्ट ईमेल पते वाले उपयोगकर्ता को नहीं ढूंढ सका"।JSON के माध्यम से एएसपी.नेट एमवीसी 3.0 में त्रुटि पर सही प्रतिक्रिया कैसे वापस करें?
जब मैं साइट को अपने टेस्ट सर्वर (Win2008 R2/IIS7.5) पर तैनात करता हूं तो यह सही स्थिति कोड देता है, लेकिन सामग्री प्रकार "टेक्स्ट/एचटीएमएल" पर सेट होता है और प्रतिक्रिया टेक्स्ट में संदेश नहीं होता है।
मैंने सर्वर पर कस्टम त्रुटियों को बंद करने का प्रयास किया है, जिसने कोई फर्क नहीं पड़ता। क्या कोई यह बता सकता है कि समस्या क्या हो सकती है?
function findFailed(result) {
var error = result.responseText;
if (error) {
$('#find-err .contents').text(error).slideDown();
}
}
नियंत्रक कार्रवाई किसी भी त्रुटि को देखता है और संदेश देता है:
@using (Ajax.BeginForm("FindUser", new AjaxOptions {OnSuccess="findComplete", OnFailure="findFailed"})
{
<fieldset>
@Html.EditorFor(m => m.UserEmail)
<div class="form-item button search">
<input type="submit" value="Find"/>
</div>
<div id="find-err" class="message error hidden">
<div class="contents"></div>
</div>
</fieldset>
}
जावास्क्रिप्ट समारोह प्रबंधन में एक त्रुटि के साथ:
मैं एक रूप है कि AjaxHelper.BeginForm विधि का उपयोग कर कॉन्फ़िगर किया गया है है:
[HttpPost]
public ActionResult FindUser(FindUserModel model)
{
try
{
// code to find user
if (user == null)
{
throw new Exception("Could not locate user with specified email address.");
}
if (Request.IsAjaxRequest())
{
return Json(new { id = user.Id, name = user.Name }, JsonRequestBehavior.AllowGet);
}
model.FoundUser = user;
return View("Details", model);
}
catch (Exception ex)
{
if (Request.IsAjaxRequest())
{
Response.StatusCode = 500;
return Json(ex.Message, JsonRequestBehavior.AllowGet);
}
ModelState.AddModelError("UserEmail", ex.Message);
return View(model);
}
}
किसी भी मदद की बहुत सराहना की जाएगी :)
अच्छा एक, आईआईएस कस्टम त्रुटियों रास्ते में आ नहीं माना जाता था:
वैकल्पिक रूप से निम्नलिखित config मान सेट करें। My HandleErrorsAttribute TrySkipCustomErrors सेट करता है, लेकिन जब किसी JSON प्रतिक्रिया के साथ स्थिति को सीधे लौटाता है, तो मैं इसे सेट नहीं कर रहा था। –