我对这些都还不太熟悉。 我正在使用ASP.NET MVC C# LINQ to SQL。
我有一个编辑页面,可以加载作者及其所有书籍。 这些书籍是通过Ajax调用加载的。
<script type="text/javascript">
$(document).ready(function() {
LoadBooks();
});
function LoadBooks() {
$(".Books").hide();
$(".Books").load("/Books/Edit/<%= Model.AuthorID %>");
$(".Books").show('slow');
}
</script>
这部分运行良好。页面会加载作者信息,然后加载书籍(一个在 DIV id="Books" 中的局部视图,仅包含书籍类别和书名):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution.Controllers.BooksController+BooksViewModel>" %>
<% using (Html.BeginForm(null,null, FormMethod.Post,new { id = "bookform" }))
{%>
<fieldset>
<legend>Books</legend>
<%int i = 0;
foreach (var book in Model.Books)
{%>
<%= book.BookID%>
<%= Html.Hidden("book[" + i + "].BookID", book.BookID) %>
<%= Html.DropDownList("book[" + i + "].CatID", new SelectList(Model.Categories, "CatID", "CatTitle", book.CatID))%>
<%= Html.ValidationMessage("CatID", "*")%>
<%= Html.TextBox("book[" + i + "].BookTitle", book.BookTitle)%>
<%= Html.ValidationMessage("BookTitle", "*")%>
<br />
<%i++;
} %>
</fieldset>
<% } %>
现在,在主视图页面上,我想要一个链接。当单击该链接时,我希望通过JavaScript/jQuery/Ajax/任何其他方式执行一些操作。
首先,我想要的是从部分视图提交Books表单(id = booksform),然后继续下一个jQuery函数。因此,我点击一个调用JavaScript函数的链接。该函数应该调用/执行Books表单的提交。
我感觉我已经尝试了一切,但无法在不进行完整页面提交/刷新的情况下提交和处理我的Books表单。(注意,当完整提交确实发生时,我期望在控制器中处理的操作确实得到了成功处理)。 我希望控制器处理/操作仅返回某种成功/失败指示。 (然后,我可以再次调用“LoadBooks();”来刷新页面上的DIV)。
有什么想法吗?
$.post
解决这个问题,但并没有成功。等我有时间了,我需要研究一下$.post
和$.ajax
之间的区别。 - Steve Guidi