首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC LOB应用程序

MVC LOB应用程序
EN

Stack Overflow用户
提问于 2010-04-29 18:03:09
回答 3查看 1.1K关注 0票数 2

我是web开发的新手,我从一个MVC项目开始。我有一个创建新服务的视图。在这个视图中,我需要一个按钮来显示一个带有客户名称的对话框(我还想在这个对话框中实现过滤器和分页)。一旦用户从对话框中选择了一个客户端,我就需要用与该特定客户端相关的信息填充Service View中的一些组合框。我如何才能做到这一点呢?如果有任何演示代码或教程可以让我动手来学习它?

提前感谢您的任何提示。

EN

回答 3

Stack Overflow用户

发布于 2010-04-30 01:23:08

我推荐阅读Pro ASP.NET MVC Framework By Steven Sanderson

Phil Haack'sSteven Sanderson'sStephen Walther's博客也是很好的资源。

票数 2
EN

Stack Overflow用户

发布于 2010-04-30 10:25:47

哇,在一个问题上回答的太多了。

我认为您需要先看一遍NerdDinner示例,以便更熟悉MVC框架。

在那之后,jQuery将成为你的朋友。本质上,您可以使用jQuery调用创建一个对话框,并使用对控制器的jQuery Ajax调用来获取和过滤数据。

jQuery.com是jQuery的一个很好的参考资料

票数 2
EN

Stack Overflow用户

发布于 2010-04-30 17:54:52

(griegs我不能评论你的答案,因为帖子太长了)

我现在使用TailSpin旅行作为圣经。

我有个疑问也许你能澄清一下。

编辑视图

代码语言:javascript
复制
(...)
<div id="clientSearch">
        <%= Html.DropDownList("clientId", Model.Clients, Model.Clients)%>

        <div class="resultsWrapper">
            <div class="results">
                 <% Html.RenderPartial("clientDetails", Model); %>
            </div>
        </div>
</div>
(...)

客户端详细信息部分视图

代码语言:javascript
复制
<%@ 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>
<% } %>

控制器:

(...)

代码语言:javascript
复制
    public ActionResult New()
    {
        var service = new EyePeak.Data.Model.Service();

        return View("Edit", this.GetEditViewModel(service));
    }

(...)

代码语言:javascript
复制
     public ActionResult SearchClientAddresses(string clientID)
     {
         var selectedClient = this._clientService.GetClient(Convert.ToInt32(clientID));

         var model = new EditServiceViewModel
         {
            SelectedClient=selectedClient
         };

         return PartialView("clientDetails", model);
     }

jQuery:

代码语言:javascript
复制
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并将其传递给局部视图吗?

我需要在这个特定的视图中创建更多的局部视图,所以我需要为每个视图创建一个视图模型?

也许我没有很好地理解这个概念。

再次感谢您的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2736360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档