Представление MVC не показывает значение временных данных после вызова контроллера - PullRequest
0 голосов
/ 12 сентября 2018

Я работаю над приложением MVC, В текстовом поле Blur он вызывает функцию jQuery, которая, в свою очередь, вызывает контроллер.

enter image description here

Ниже приведен код jQuery

 $(document).ready(function () {
    $('#UserId').blur(function () {
        //alert(1);

        var userId = $("#UserId").val();

        var url = '@Url.Action("IsValidUser", "UserRoleCompany")';

        $.ajax({
            url: url,
            data: { userId: userId },
            cache: false,
            type: "POST",
            success: function (data) {

            },
            error: function (reponse) {
                alert("error : " + reponse);
            }
        });
    });
});

Код контроллера ниже,

   public ActionResult IsValidUser(string userID)
    {
        LMTUsage objLMT = new LMTUsage();
        LMTDAL objLMTDAL = new LMTDAL();

        try
        {
            objLMT.UserList = objLMTDAL.IsValidUser(userID);
            bool IsValidUser = objLMT.UserList.Any(cus => cus.UserId == userID);

            if(!IsValidUser)
                TempData["Msg"] = "Please enter valid User Id";

            return RedirectToAction("Index", "UserRoleCompany");
        }
        catch (Exception ex)
        {
            //TempData["Msg"] = ex.Message;
            //return Json(objLMT);
            throw ex;
        }
    }

Контроллер работает правильно и получает значение, показанное на рисунке

TempData ["Msg"] = "Пожалуйста, введите действительный идентификатор пользователя";

Но код представления не показывает уведомление при вызове $ ('# UserId'). Blur (function ().

@if (TempData["Msg"] != null)
{ 
<div class="alert alert-success alert-dismissable">
 <button type="button" class="close" data-dismiss="alert" aria- 
 hidden="true">&times;</button>
 Lorem ipsum dolor sit amet, consectetur adipisicing elit. 
 <a href="#" class="alert-link">Alert Link</a>.
</div>
}

Это должно показать,

enter image description here

Добро пожаловать.

1 Ответ

0 голосов
/ 13 сентября 2018

Вы не должны работать с temptdata в этом случае. Попробуйте вернуть правильный Json (успех или ошибка):

public ActionResult IsValidUser(string userID)
{
    LMTUsage objLMT = new LMTUsage();
    LMTDAL objLMTDAL = new LMTDAL();

    try
    {
        objLMT.UserList = objLMTDAL.IsValidUser(userID);
        bool IsValidUser = objLMT.UserList.Any(cus => cus.UserId == userID);

        if (!IsValidUser) {
            return Json(new { success = false, responseText = "Please enter valid User Id." }, JsonRequestBehavior.AllowGet);
        }

        return Json(new { success = true, responseText= "UserRoleCompany/Index"}, JsonRequestBehavior.AllowGet);
    }
    catch (Exception ex)
    {
        return Json(new { success = false, responseText = "Something went wrong..." }, JsonRequestBehavior.AllowGet);
    }
}

Затем просто сверьтесь с вашим jQuery для оповещения с помощью начальной загрузки JS или установите в window.location URL-адрес, который вы получите (или какова ваша идея).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...