好的,我刚刚成为ASP.NET开发人员后开始学习ASP.NET MVC。我认为我的主要问题是在开发我的MVC项目时试图“忘掉”ASP.NET。
这是我的问题:我有一个页面,其中包含一些输入字段。这些字段是我试图针对数据库运行的搜索的参数。用户选中他们想要查看的项目类型旁边的框,然后单击“搜索”。非常简单的东西。
我无法理解如何“回发”到页面以显示结果。使用jQuery和序列化表单更好吗?我是否使用我创建的实体框架模型?什么是最好的方式
我对MVC及其给我的控制感到非常兴奋,但如果我想把它“卖”给我的老板作为开发我们所有网络应用程序的方式,我需要克服这些最初的障碍。谢谢你的阅读!
答案 0 :(得分:2)
如果您的输入位于html表单元素内(如果涉及javascript,则为不同的故事) - 您可以使用default model binding(它也会绑定路由值和查询字符串参数)。
<form ...>
<input type="text" name="query" />
<input type="submit" .../>
</form>
在提交时,它会自动将表单值(按名称)绑定到操作参数:
public ActionResult PerformSearch(string query)
{
//whatever
}
在你的情况下 - 我怀疑你有输入作为复选框。这样的事情应该有效:
<form...>
<input type="checkbox" name="p" value="value1" />
<input type="checkbox" name="p" value="value2" />
<input type="checkbox" name="p" value="value3" />
<input type="checkbox" name="p" value="value4" />
<input type="checkbox" name="p" value="value5" />
</form>
public ActionResult PerformSearch(string[] p)
{
//whatever
}
仅 - 如果(表单方法==“GET”),URL看起来不太好。 :)
要显示结果,请为您的视图制作模型并通过视图显示:
public ActionResult PerformSearch(string[] p)
{
var model = _searchService(p);
return View("Results", model);
}
查看/ Results.aspx
<% foreach(var bar in Model){ %>
<%= bar.Name %>
<%}%>
P.S。在考虑AJAX调用时,请始终记住,您无法显示URL +搜索引擎不了解JS。
答案 1 :(得分:2)
如果您还没有,请考虑NerdDinner Tutorial,Professional ASP.NET MVC 1.0,Rob Conery和{{Scott Hanselman Phil Haack中的Scott Guthrie。 3}}。它包含了对ASP.NET MVC的许多功能的精彩演示,包括执行搜索并通过整页帖子以及使用JSON异步返回数据。