Как вызвать функцию jquery из метода действия в контроллере? - PullRequest
0 голосов
/ 30 июня 2011

У меня есть требование открыть всплывающее окно из метода действия в контроллере.Метод действия в основном регистрирует пользователя.

[HttpPost]
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {            
        MembershipCreateStatus createStatus;
        Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

        if (createStatus == MembershipCreateStatus.Success)
        {
            FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
            //------------------------------------------
            //I need to call a jquery function from here
            //------------------------------------------
            return RedirectToAction("Index", "Home");
        }
        else
        {
            ModelState.AddModelError("", ErrorCodeToString(createStatus));
        }
    }

    return View(model);
}

Функция jquery, присутствующая в представлении, просто сделает скрытый DIV видимым и установит непрозрачность и т. Д. Для представления всплывающего окна.функция jquery из метода действия контроллера, показанного выше.

Ответы [ 2 ]

2 голосов
/ 30 июня 2011

Вы не можете вызвать сценарий на стороне клиента с сервера.Тем не менее, вы можете установить индикаторы на стороне сервера, на которые клиентская сторона может посмотреть, чтобы определить его действие.

Я бы установил bool в модели с именем ShowModalPopup, а когда createStatus == MembershipCreateStatus.Success, установите этот boolв true.

Теперь, на ваш взгляд, запишите индикатор:

@Html.HiddenFor(model => model.ShowModalPopup, new { id = "_showModalPopup" }) //add the id attribute for added performace

и в своем jquery:

$(document).ready(function()
{
    if($('#_showModalPopup').val() == 'true')
    {
        //call your jquery modal popup method
    }
});
0 голосов
/ 30 июня 2011

Я не эксперт по технологии dotnet. на мой взгляд, сценарии на стороне сервера и сценарии на стороне клиента должны быть отделены друг от друга.

как javascript jquery на стороне клиента, а dotnet на стороне сервера.

сервер обработает запрос и обработает серверный скрипт, затем отправит вывод в браузер пользователя, тогда только функция jquery будет выполняться на стороне пользователя.

в основном для того, что должно быть выполнено в клиентском браузере, я поставлю их все в поле зрения (HTML). jquery и javascript, которые они, вероятно, должны будут запустить в html с тегом script.

<script type="text/javascript">
    jQuery(function(){
        //call your function here
    });
</script>

Я не уверен, что помогаю или не понимаю вопроса. Прости

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