我正在寻求有关如何实现此功能的建议(像往常一样)。我有一个带有编辑框的页面,用户在其中提交带有输入的页面,其唯一目的是将其保存到记录中。但是我想要做的(为了避免重复)是首先在表中搜索任何相似的记录,如果有任何相似的记录,我想将其返回给用户(在同一 View 上)并询问,你想要使用这些记录而不是保存新记录?
所以我有一个观点
<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>
我的 Controller
public ActionResult New(){
return View();
}
[HttpPOst]
public ActionResult New(FormCOllection collection){
try{
Profile profile = new Profile();
TryupdateModel(profile);
context.Profile.Add(profile);
context.SaveChanges();
}
catch(Exception ex)
{
}
return View();
}
所以我的困境是,我不确定:
我应该将其发布到“新建”操作,然后在其中进行搜索,如果存在记录,我应该返回 json 格式数据,以便我可以使用 jquery 无缝显示它,否则保存它重定向到同一页面。
或者,我应该将整个事情指向一个将处理搜索的 json 操作,如果找到某些内容,则返回到同一页面,否则保存然后返回。
我对后者的问题是,它将需要一个 GET 操作,如果我有一个 get 操作,然后在 Controller 中使用一个单独的 JSon 类型方法,我不确定这是否是一个好的做法。这有道理吗?
或者也许我只是需要有人向我指出另一种类型的解决方案
感谢任何帮助!非常感谢!!
最佳答案
为什么不使用 jQuery Autocomplete plugin将现有项目填充为用户类型。因此,如果用户键入现有的“自动完成”将显示选项,并且用户将选择它。现在,当用户从现有选项(从自动完成建议中)中进行选择时,您知道不需要将其另存为新选项。
这对用户来说减少了工作
关于asp.net-mvc - mvc c# jquery 如果记录存在则更新 View 的一部分,否则更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892914/