如何在运行时将值传递给jquery函数?

时间:2012-11-05 05:39:54

标签: jquery asp.net-mvc-3

场景是,我有一个登录用户的表单,它将调用一个动作方法。 action方法将返回true / false,具体取决于有效/无效的用户名。如果它返回false,我想要一个jquery方法来显示一条消息。我可以将值作为模型视图传递,但问题是当页面第一次被请求时,该值为null因为post没有调用post的action方法,因此它显示像对象引用这样的错误为null。如何处理这种情况。我没有给出代码,coz编码不是我的问题,我需要知道处理这个的最佳实践。感谢。

好的,这是我试过的Jquery方法。

<script type="text/javascript">

        $(document).ready(function () {
            (' #SignIn').click(function () {
                if (@Model.test === null) //Error is showing here, on the @Model.test call
                {
                $(' #Message').text("Null")
                }
                if(@Model.test===false)
                 {
                    $(' #Message').text("Invalid");
                }
            });
        });
    </script>

1 个答案:

答案 0 :(得分:1)

如果要从模型中的操作返回结果,则需要在POST调用后执行java脚本操作。 试试这个。

//In your Controller 

[HttpGet]
public ActionResult SomeAction()
{
    var model = new ModelView();
    model.test = false;
    return (model)
}   

[HttpPost]
public ActionResult SomeAction(ModelView model)
{
    if(ModelState.IsValid)
    {
        // write your logic here for validating user 
         model.test = true;
         return View(model);
    }
    model.test = false;
    return (model)
}  

// In View 

@model ViewModel 

@if (model.test == true)
{
    <script type="text/javascript">
        $(document).ready(function () {
            $(' #Message').text("Null")

        });

    </script>
}
else
{
 <script type="text/javascript">
    $(document).ready(function () {
         $(' #Message').text("Invalid");

    });

</script>
 }

我已根据您的情况为您提供解决方案,但我建议您使用 Ajax.BeginForm或javascript 提交表单并从操作中返回 JSON