Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在运行时将值传递给jquery函数?_Jquery_Asp.net Mvc 3 - Fatal编程技术网

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

如何在运行时将值传递给jquery函数?,jquery,asp.net-mvc-3,Jquery,Asp.net Mvc 3,场景是,我有一个表单要登录用户,它将调用一个操作方法。操作方法将根据有效/无效用户名返回true/false。如果返回false,我希望jquery方法显示消息。我可以将该值作为模型视图传递,但问题是当第一次请求页面时,该值为null,因为当时未调用post的操作方法,因此它显示的错误(如对象引用)为null。如何处理这种情况。我没有给出代码,因为编码不是我的问题,我需要知道处理这个问题的最佳实践。谢谢 好的,这是我尝试过的Jquery方法 <script type="text/javas

场景是,我有一个表单要登录用户,它将调用一个操作方法。操作方法将根据有效/无效用户名返回true/false。如果返回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>

$(文档).ready(函数(){
(“#登录”)。单击(函数(){
如果(@Model.test==null)//在@Model.test调用中显示错误
{
$(“#消息”).text(“Null”)
}
if(@Model.test==false)
{
$('#Message')。文本(“无效”);
}
});
});

如果要返回模型中操作的结果,则需要在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>
 }
//在控制器中
[HttpGet]
公共行动结果某些行动()
{
var模型=新模型视图();
model.test=false;
退货(型号)
}   
[HttpPost]
公共操作结果SomeAction(ModelView模型)
{
if(ModelState.IsValid)
{
//在此处编写逻辑以验证用户身份
model.test=true;
返回视图(模型);
}
model.test=false;
退货(型号)
}  
//鉴于
@模型视图模型
@如果(model.test==true)
{
$(文档).ready(函数(){
$(“#消息”).text(“Null”)
});
}
其他的
{
$(文档).ready(函数(){
$('#Message')。文本(“无效”);
});
}

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

“我没有给出代码”-真的吗?至少显示发生错误的特定行。你说的是客户端JS错误吗?如果是这样,只需使用
If(yourVariable==null){/*必须是第一次,所以不要显示消息*/}
,测试
null
。我刚刚尝试了相同的方法,仍然得到了错误!老实说,我不知道应该给出什么代码,我是说Jquery方法,我的操作方法还是业务逻辑的方法?!很抱歉。很抱歉,我对asp.net记忆犹新,不知道如果(@Model.test==null),服务器端会发生什么,但我怀疑它会按原样返回到浏览器,然后作为JS运行(而浏览器不知道您的
@Model
是什么)。是的,我最终会用ajax来做!谢谢你的回答。