-2

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

好的,这是我尝试过的 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>
4

1 回答 1

1

如果您从模型中的操作返回结果,那么您需要在 POST 调用之后执行 java-script 操作。试试这个。

//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 。

于 2012-11-05T06:36:25.437 回答