我对这一切都很陌生。我正在使用 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/whatever 做一些事情。我想要发生的第一件事是从局部视图提交 Books 表单(id = booksform),然后继续执行下一个jQuery函数。因此,我单击了一个调用 JavaScript 函数的链接。这个函数应该调用/执行/执行 Books 表单的提交。
我觉得我已经尝试了所有方法,但是如果没有进行整页提交/刷新,我就无法提交和处理我的 Books 表单。(注意,当完整提交确实发生时,我期望控制器中的操作会成功处理)。我希望控制器进程/操作只返回某种成功/失败指示。(然后我可以再次调用“LoadBooks();”来刷新页面上的 DIV。
有任何想法吗?