我是web开发的新手,我从一个MVC项目开始。我有一个创建新服务的视图。在这个视图中,我需要一个按钮来显示一个带有客户名称的对话框(我还想在这个对话框中实现过滤器和分页)。一旦用户从对话框中选择了一个客户端,我就需要用与该特定客户端相关的信息填充Service View中的一些组合框。我如何才能做到这一点呢?如果有任何演示代码或教程可以让我动手来学习它?
提前感谢您的任何提示。
发布于 2010-04-30 01:23:08
我推荐阅读Pro ASP.NET MVC Framework By Steven Sanderson。
Phil Haack's,Steven Sanderson's和Stephen Walther's博客也是很好的资源。
发布于 2010-04-30 10:25:47
哇,在一个问题上回答的太多了。
我认为您需要先看一遍NerdDinner示例,以便更熟悉MVC框架。
在那之后,jQuery将成为你的朋友。本质上,您可以使用jQuery调用创建一个对话框,并使用对控制器的jQuery Ajax调用来获取和过滤数据。
jQuery.com是jQuery的一个很好的参考资料
发布于 2010-04-30 17:54:52
(griegs我不能评论你的答案,因为帖子太长了)
我现在使用TailSpin旅行作为圣经。
我有个疑问也许你能澄清一下。
编辑视图
(...)
<div id="clientSearch">
<%= Html.DropDownList("clientId", Model.Clients, Model.Clients)%>
<div class="resultsWrapper">
<div class="results">
<% Html.RenderPartial("clientDetails", Model); %>
</div>
</div>
</div>
(...)客户端详细信息部分视图
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<EyePeak.ViewModel.Service.EditServiceViewModel>" %>
<% if(Model.SelectedClient != null) { %>
<tr>
<%Html.LabelFor(model => model.SelectedClient.Name);%>
<%= Html.DropDownList("clientAddresses", Model.SelectedClient.Addresses.Select(i => new SelectListItem { Value = i.Id.ToString(), Text = i.Name}))%>
</tr>
<% } %>控制器:
(...)
public ActionResult New()
{
var service = new EyePeak.Data.Model.Service();
return View("Edit", this.GetEditViewModel(service));
}(...)
public ActionResult SearchClientAddresses(string clientID)
{
var selectedClient = this._clientService.GetClient(Convert.ToInt32(clientID));
var model = new EditServiceViewModel
{
SelectedClient=selectedClient
};
return PartialView("clientDetails", model);
}jQuery:
Sys.Application.add_load(
function()
{
$("#clientId").bind("change", showClientInfo);
}
);
function showClientInfo()
{
var id = $("#clientId").val();
$("#clientSearch .results table").fadeOut();
$("#clientSearch .results").slideUp("medium", function() {
$.ajax(
{
type: "GET",
url: "/Service/SearchClientAddresses",
data: "clientID=" + escape(id),
dataType: "html",
success: function(result) {
var dom = $(result);
$("#clientSearch .results").empty().append(dom).slideDown("medium");
}
});
});
}我的问题是:我是否必须创建一个仅包含客户端信息的新EditServiceViewModel,才能将其传递到局部视图?我不能更新当前的ViewModel并将其传递给局部视图吗?
我需要在这个特定的视图中创建更多的局部视图,所以我需要为每个视图创建一个视图模型?
也许我没有很好地理解这个概念。
再次感谢您的帮助。
https://stackoverflow.com/questions/2736360
复制相似问题