Многоразовый редактор AJAX для модели в Asp.net MVC не собирается AJAX - PullRequest
0 голосов
/ 24 декабря 2010

хорошо, так что я новичок в MVC. То, что я делаю, - это создание пользовательской формы. UserViewModel имеет свойство кода отделения типа long. Я хочу небольшой селектор веток, где вместо простого текстового поля для кода у меня есть текстовое поле и ссылка check name , при нажатии на которую будет возвращено имя ветви с некоторым ajax.

Итак, я сделал селектор веток и поместил его в Shared / EditorTemplates. Похоже на это

@model long

<div class="editor-label">
    Branch ID: @Html.TextBoxFor(model => model)
    @Ajax.ActionLink("Get Branch Name", MVC.Admin.Home.BranchDetail(Model),
        new AjaxOptions { UpdateTargetId = "BranchName", LoadingElementId = "loading" })
    <p id="loading" style="display: none">
        Loading...
    </p>
</div>
<div id="BranchName" class="editor-field">
</div>

У меня есть настройка UIHint в viewmodel, поэтому, когда я говорю EditFor (model.BranchName), он отображается совершенно так: alt text

Мои проблемы:

1. Существует без ajax! Когда я щелкаю по нему, идет URL: http://localhost:1159/Admin/Home/BranchDetail?brcd=0 А затем URL выдает ошибку, потому что нигде нет BranchDetailsView .

Вот как выглядит контроллер:

public virtual ActionResult BranchDetail(long brcd)
        {
            if (Request.IsAjaxRequest())
            {
                //code to find branch
                if (br == null)
                {
                    return Content("No Branch Found");
                }
                else
                {
                    return Content(br.BranchName + "Circle: " + br.Circle);
                }
            }
            return View();//we should not be here.
        }

2. Другая проблема заключается в том, как заставить AjaxLink возвращать код, который набран. Если вы заметили экран, ссылка на ссылку имеет brcd=0. Я хочу отправить код филиала на контроллер! Я попытался BeginRouteForm с кнопкой ввода внутри редактора, но что в итоге представляет форму «Создать страницу»? Это был бы правильный способ сделать это?

Примечание: я использую T4MVC, также, вначале я забыл, но на странице создания я упоминал microsoft.ajax.js и microsoft.mvc.ajax.js.


Обновление : мне удалось заставить это работать с JQuery, и это кажется довольно хорошим и простым. Тем не менее, мне бы очень хотелось узнать, как такого рода вещи обычно делаются с Ajax.BeginForm, так как я изучаю MVC.

1 Ответ

1 голос
/ 24 декабря 2010

Похоже, вы используете MVC 3, поэтому вам нужно ссылаться на разные сценарии.

jquery-1.4.4.js
jquery.unobtrusive-ajax.js

для началас

и кажется, что нет способа передать данные на стороне клиента в @ Ajax.ActionLink. Так что вы можете сразу перейти к реализации поиска с помощью jQuery.

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