Приложение MVC LOB - PullRequest
       20

Приложение MVC LOB

2 голосов
/ 29 апреля 2010

Я новичок в веб-разработке и начинаю с проекта MVC. У меня есть намерение создать новый Сервис. В этом представлении мне нужна кнопка для отображения диалога с именами клиентов (я также хотел бы реализовать фильтры и подкачку страниц в этом диалоге). Как только пользователь выбирает клиента в диалоговом окне, мне нужно заполнить некоторые поля со списком в представлении службы информацией, относящейся к этому конкретному клиенту. Как я могу сделать это? Если есть какой-нибудь демо-код или учебник, я могу научиться этому?

Заранее благодарим за любой совет.

Ответы [ 3 ]

2 голосов
/ 30 апреля 2010

Ого, это много, чтобы ответить на один вопрос.

Я думаю, что сначала вам нужно пройти пример NerdDinner, чтобы познакомиться с инфраструктурой MVC.

После этого jQuery станет вашим другом. По сути, вы можете создать диалог с вызовом jQuery и использовать вызовы jQuery Ajax к вашему контроллеру для получения и фильтрации данных.

Хорошая ссылка на jQuery - на jQuery.com

2 голосов
/ 29 апреля 2010

Я рекомендую прочитать Pro ASP.NET MVC Framework. Автор Steven Sanderson .

Фил Хаак , Блог Стивена Сандерсона и Стивена Вальтера также являются хорошими ресурсами.

0 голосов
/ 30 апреля 2010

(огорчает, я не могу прокомментировать ваш ответ, потому что сообщение слишком длинное)

Я сейчас использую TailSpin Travel как библию.

У меня есть сомнения, что, может быть, вы можете уточнить.

Редактировать вид

(...)
<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>
<% } %>

Controler:

(...)

    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 только с информацией о клиенте, чтобы передать ее в частичное представление? Разве я не могу обновить свою текущую модель представления и передать ее в частичное представление?

Мне нужно создать более частичные представления по пути в этом конкретном представлении, поэтому мне нужно будет создать модель представления для каждого?

Может быть, я не очень хорошо понял эту концепцию.

Еще раз спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...