Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc mvc jquery在记录存在时更新视图的一部分,否则更新表_Asp.net Mvc_Jquery - Fatal编程技术网

Asp.net mvc mvc jquery在记录存在时更新视图的一部分,否则更新表

Asp.net mvc mvc jquery在记录存在时更新视图的一部分,否则更新表,asp.net-mvc,jquery,Asp.net Mvc,Jquery,我正在像往常一样寻求有关如何实现此功能的建议。我有一个页面,其中有编辑框,用户在其中提交带有输入的页面,唯一目的是将其保存到记录中。但是为了避免重复,我要做的是首先搜索表中的任何类似记录,如果有任何类似的记录,我想将其返回给同一视图中的用户,并询问,是否要使用这些记录而不是保存新记录 所以我有一个观点 <script type="text/javascript"> $(document).ready(function(){ $(function(){

我正在像往常一样寻求有关如何实现此功能的建议。我有一个页面,其中有编辑框,用户在其中提交带有输入的页面,唯一目的是将其保存到记录中。但是为了避免重复,我要做的是首先搜索表中的任何类似记录,如果有任何类似的记录,我想将其返回给同一视图中的用户,并询问,是否要使用这些记录而不是保存新记录

所以我有一个观点

<script type="text/javascript">
   $(document).ready(function(){
      $(function(){
         $('.submit-link').click(function(){
             /** not sure how to handle this **/
         });
      });
   });
</script>


<% using(Html.Beginform()){%>
   <%: Html.TextBoxFor(model => model.Name)
   <button type="submit" value="register name" class="submit-link">Submit</button>
<%}%>

<div class="search-results"></div>
所以我的问题是,我不确定:

我应该把它放到新的动作中,然后在中间进行搜索,如果有记录,我应该返回一个JSON格式的数据,这样我就可以用jQuery保存它来无缝显示,然后重定向到同一个页面。p> 或者,我应该将整个过程指向一个json操作,该操作将处理搜索,如果它找到了什么,则返回到同一页面,否则保存,然后返回

我对后者的问题是,它需要一个GET操作,如果我在控制器中有一个GET,然后是一个单独的JSon类型方法,我不确定这是否是一个好的实践。这有意义吗

或者我只是需要有人给我指出另一种解决方案


感谢您的帮助!非常感谢

我只想做前者。如果记录存在,则返回Json,否则返回重定向。我认为在同一方法中返回多种ActionResult没有任何问题。也许有人认为这很草率,但我不这么认为

我在很多项目中都看到过类似的情况:

[HttpPost]
public ActionResult MethodName()
{
    ....
    if(error)
        return Json(new { Error = "Error!" });
    else
        return RedirectToAction("NextStep");
}

我只会做前者。如果记录存在,则返回Json,否则返回重定向。我认为在同一方法中返回多种ActionResult没有任何问题。也许有人认为这很草率,但我不这么认为

我在很多项目中都看到过类似的情况:

[HttpPost]
public ActionResult MethodName()
{
    ....
    if(error)
        return Json(new { Error = "Error!" });
    else
        return RedirectToAction("NextStep");
}
为什么不使用填充现有项作为用户类型呢。因此,如果用户键入一个现有的,您的自动完成将显示选项,用户将选择它。现在,当用户从“自动完成建议”中选择现有建议时,您知道不需要将其另存为新建议

这对于用户来说是较少的工作

为什么不使用填充现有项作为用户类型呢。因此,如果用户键入一个现有的,您的自动完成将显示选项,用户将选择它。现在,当用户从“自动完成建议”中选择现有建议时,您知道不需要将其另存为新建议


这对用户来说是较少的工作

1b怎么样?始终重定向,请检查服务器端,如果存在相似,请重定向到显示相似的页面,否则重定向到保存后页面。通过这种方式,您可以将一个场景与另一个场景解耦,从而更易于维护。唯一的缺点是额外的往返行程

1b怎么样?始终重定向,请检查服务器端,如果存在相似,请重定向到显示相似的页面,否则重定向到保存后页面。通过这种方式,您可以将一个场景与另一个场景解耦,从而更易于维护。唯一的缺点是额外的往返

因此,当我返回一个json时,如何在getjson函数中处理它?我似乎无法让它工作。它将我指向另一个显示json结果的页面…@gdubs,您是否使用jQuery发布到控制器?你能提供你用来打post电话的代码以及你在做什么来处理它吗?好吧,我只是想用post。单击表单内的“提交”按钮时。当我的dilema出现时,我应该使用jquery来处理它,而不是依赖页面的post-submit吗?那么,当我返回json时,我如何在getjson函数中处理它呢?我似乎无法让它工作。它将我指向另一个显示json结果的页面…@gdubs,您是否使用jQuery发布到控制器?你能提供你用来打post电话的代码以及你在做什么来处理它吗?好吧,我只是想用post。单击表单内的“提交”按钮时。当我的dilema出现时,我应该使用jquery来处理这个问题,而不是依赖页面的post-submit吗?你是说像google自动完成一样?这不会对数据库造成太大影响吗?如何生成现有列表并将其显示在文本框中?@gdubs;对您可以缓存数据。这样它就不会每次都击中数据库。它很容易实现。好的,接下来的问题。如果我有另一个与搜索相关的对象dropdownlist呢。我在想,如果用户从上一个编辑框中跳出标签,然后用与搜索值连接的相应值填充下拉列表。问题是,如果他们用鼠标点击下拉菜单本身会怎么样。希望这有意义。你是说像谷歌自动完成?这不会对数据库造成太大影响吗?如何生成现有列表并将其显示在文本框中?@gdubs;对您可以缓存数据。所以我
t不会每次都击中db。它很容易实现。好的,接下来的问题。如果我有另一个与搜索相关的对象dropdownlist呢。我在想,如果用户从上一个编辑框中跳出标签,然后用与搜索值连接的相应值填充下拉列表。问题是,如果他们用鼠标点击下拉菜单本身会怎么样。希望这是有道理的。