Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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
Javascript ASP.NET MVC4:在文本更改时,执行ajax请求,然后返回json结果并更新模型,而无需重新加载页面_Javascript_Ajax_Asp.net Mvc_Json - Fatal编程技术网

Javascript ASP.NET MVC4:在文本更改时,执行ajax请求,然后返回json结果并更新模型,而无需重新加载页面

Javascript ASP.NET MVC4:在文本更改时,执行ajax请求,然后返回json结果并更新模型,而无需重新加载页面,javascript,ajax,asp.net-mvc,json,Javascript,Ajax,Asp.net Mvc,Json,我很抱歉,如果这是一个有点长,但这是我的第一篇文章,我知道我可以推迟与小信息的帖子,所以在这里 我目前正在ASP.NET MVC 4中使用强类型ViewModel的视图进行编码。ViewModel很简单,由基本数据类型组成。该模型从不用于在数据库中插入或更新数据,只用于一个页面。单击submit按钮时,我使用控制器对数据库执行各种查询,以查看某些字段是否有效(数据注释无法处理的条件),如果没有无效字段,则将数据发送到流程的下一步 我的情况是这样的。在不刷新页面的情况下,我需要: 检查Contac

我很抱歉,如果这是一个有点长,但这是我的第一篇文章,我知道我可以推迟与小信息的帖子,所以在这里

我目前正在ASP.NET MVC 4中使用强类型ViewModel的视图进行编码。ViewModel很简单,由基本数据类型组成。该模型从不用于在数据库中插入或更新数据,只用于一个页面。单击submit按钮时,我使用控制器对数据库执行各种查询,以查看某些字段是否有效(数据注释无法处理的条件),如果没有无效字段,则将数据发送到流程的下一步

我的情况是这样的。在不刷新页面的情况下,我需要:

  • 检查ContactID是否已更改
  • 如果ContactID已更改并已填充,请检查该联系人 数据库中的表,以查看ContactID是否存在
  • 如果数据库中存在联系人ID,则显示联系人的 模型中相应文本框中的信息和禁用 这些文本框
  • 如果ContactID不存在,则显示型号错误或某些错误 通知的种类(我不想发出警报,但我不是 在ContactID的验证消息中选择并设置每个 将模型中的文本框设置为空
  • 标准主要针对用户。用户需要查看要提交的联系人。我无法进行列表查看,因为如果用户选择不输入联系人ID,则仍需要能够输入联系人信息。尽管如此,我仍然会在用户单击submit时进行验证,以防万一

    看法

    控制器

    [HttpGet]
    public ActionResult Index()
    {
        //private :)
    }
    
    [HttpPost]
    public ActionResult Index(OrderViewModel)
    {
        //private :)
    }
    
    [HttpPost]
    public ActionResult GetContactInformationForContactID(string ContactIDValue )
    {
        var result = myDB.CONTACTs.Where(r => r.CONTACTID == ContactIDValue ).FirstOrDefault();
    
        return Json(result );
    }
    
    我的代码现在的工作原理是,当用户输入ContactID时,页面将返回警报。如果存在匹配,警报将显示数据库中的街道值。如果没有匹配项,则只会出现一个空白警报框

    我尝试给每个文本框一个id,然后使用javascript调用它们,然后用Json更新它们,但我并没有成功。我是如何尝试的,如下所示。也许我做错了

    $('#ContactStreet').Val = result.STREET;
    
    我尝试过弄乱一些片面的观点,但我必须承认,我对它们并不精通,我也不确定模型的完整性是否会得到保留。如果可能的话,我想在整个过程中使用相同的模型,但我对其他解决方案持开放态度。如果我最终需要两个独立的模型,那么当用户单击submit按钮时,我可能需要两个模型

    我期待得到一些回应;在过去的一周里,这个问题占用了我的时间。

    试试
    $('#Street').Val(result.Street)


    它应该是
    $('#Street').val(result.Street)[HttpGet]
    public ActionResult Index()
    {
        //private :)
    }
    
    [HttpPost]
    public ActionResult Index(OrderViewModel)
    {
        //private :)
    }
    
    [HttpPost]
    public ActionResult GetContactInformationForContactID(string ContactIDValue )
    {
        var result = myDB.CONTACTs.Where(r => r.CONTACTID == ContactIDValue ).FirstOrDefault();
    
        return Json(result );
    }
    
    $('#ContactStreet').Val = result.STREET;