1
我有一个观点,即呈现这样的:最佳策略值
“项目1”和“项目2”是从表<tr>
元素。
用户改变“值1”或“值2”之后,我想打电话给一个控制器,并把结果(一些HTML片段)中标记为“结果的...”的div
。
我有一些模糊的JQuery概念。例如,我知道如何绑定Select
元素的onchange
事件,并调用$.ajax()
函数。
但我不知道这是否可以在ASP.NET MVC2中以更有效的方式实现。
我有一个观点,即呈现这样的:最佳策略值
“项目1”和“项目2”是从表<tr>
元素。
用户改变“值1”或“值2”之后,我想打电话给一个控制器,并把结果(一些HTML片段)中标记为“结果的...”的div
。
我有一些模糊的JQuery概念。例如,我知道如何绑定Select
元素的onchange
事件,并调用$.ajax()
函数。
但我不知道这是否可以在ASP.NET MVC2中以更有效的方式实现。
这是我取得了巨大成功使用的方法的例子:
在查看:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Namespace.Stuff>>" %>
<asp:Content ID="Content3" ContentPlaceHolderID="head" runat="server">
<script type="text/javascript">
$(document).ready(function(){
$("#optionsForm").submit(function() {
$("#loading").dialog('open');
$.ajax({
type: $("#optionsForm").attr("method"),
url: $("#optionsForm").attr("action"),
data: $("#optionsForm").serialize(),
success: function(data, textStatus, XMLHttpRequest) {
$("#reports").html(data); //replace the reports html.
$("#loading").dialog('close'); //hide loading dialog.
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$("#loading").dialog('close'); //hide loading dialog.
alert("Yikers! The AJAX form post didn't quite go as planned...");
}
});
return false; //prevent default form action
});
});
</script>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<div id="someContent">
<% using (Html.BeginForm("Index", "Reports", FormMethod.Post, new{ id = "optionsForm" }))
{ %>
<fieldset class="fieldSet">
<legend>Date Range</legend>
From: <input type="text" id="startDate" name="startDate" value="<%=ViewData["StartDate"] %>" />
To: <input type="text" id="endDate" name="endDate" value="<%=ViewData["EndDate"] %>" />
<input type="submit" value="submit" />
</fieldset>
<%} %>
</div>
<div id="reports">
<%Html.RenderPartial("ajaxStuff", ViewData.Model); %>
</div>
<div id="loading" title="Loading..." ></div>
</asp:Content>
在控制器:
public ActionResult Index(string startDate, string endDate)
{
var returnData = DoSomeStuff();
if (Request.IsAjaxRequest()) return View("ajaxStuff", returnData);
return View(returnData);
}
上面的代码概括了基本策略。你当然想要调整它的多个部分和多种形式。
谢谢 - 它帮助! – pvieira 2010-03-30 08:37:40
很高兴能帮到你! – 2010-03-30 15:00:29