Пример кода Master-Detail для MVC 3 Razor (для деталей используется Ajax) - PullRequest
10 голосов
/ 04 апреля 2011

Я ищу пример кода для создания мастера / деталей с помощью c # mvc 3.

В частности, я пытаюсь выяснить, как вызвать через ajax рендеринг частичного представления. Я могу поместить частичное представление в форму, но хочу заполнить его после того, как пользователь выбрал элемент из списка выбора через ajax.

ТНХ

Ответы [ 2 ]

13 голосов
/ 04 апреля 2011

Как всегда вы начинаете с модели:

public class MyViewModel
{
    public int Id { get; set; }
    public string Title { get; set; }
}

public class DetailsViewModel
{
    public string Foo { get; set; }
    public string Bar { get; set; }
}

, затем контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        // TODO: don't hardcode, fetch from repository
        var model = Enumerable.Range(1, 10).Select(x => new MyViewModel
        {
            Id = x,
            Title = "item " + x
        });
        return View(model);
    }

    public ActionResult Details(int id)
    {
        // TODO: don't hardcode, fetch from repository
        var model = new DetailsViewModel
        {
            Foo = "foo detail " + id,
            Bar = "bar detail " + id
        };
        return PartialView(model);
    }
}

и соответствующие виды.

@model IEnumerable<MyViewModel>

<ul>
    @Html.DisplayForModel()
</ul>

<div id="details"></div>

<script type="text/javascript">
    $(function () {
        $('.detailsLink').click(function () {
            $('#details').load(this.href);
            return false;
        });
    });
</script>

~/Views/Home/Details.cshtml:

@model DetailsViewModel
@Model.Foo
@Model.Bar

~/Views/Home/DisplayTemplates/MyViewModel.cshtml:

@model MyViewModel
<li>
    @Html.ActionLink(Model.Title, "details", new { id = Model.Id }, new { @class = "detailsLink" })
</li>
1 голос
/ 25 мая 2011

У меня в блоге о создании главной формы детализации с использованием asp.net mvc, где вы можете добавить n дочерних записей на стороне клиента без необходимости отправки ajax-запроса просто для того, чтобы принести поля редактора для дочерних записей.он использовал шаблоны jquery

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