понимание обмена данными в модели MVC (?) - PullRequest
0 голосов
/ 15 октября 2018

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

Я пытаюсь сделать нумерацию страниц, используя ajax.То, что я показываю, это список блогов в порядке убывания.Один вид предлагает пять записей, и, нажав на значок «следующий», вы можете увидеть еще пять.Действительно классический.

Я совершенно новичок в программировании в целом, не говоря уже о ajax, поэтому я нашел эту статью .

У меня проблемы с пониманием этогочасть.Для бритвы в _SearchForm.cshtml он пишет следующее:

@model CodeShare.Library.Models.SearchViewModel
@*@using (Html.BeginUmbracoForm("SubmitSearchForm", "Search", FormMethod.Post))*@

@using (Ajax.BeginForm("SubmitSearchForm", "Search", null, new AjaxOptions
{
 HttpMethod = "POST",
 InsertionMode = InsertionMode.Replace,
 UpdateTargetId = "search-results"
}))
{
 @Html.HiddenFor(m => m.DocTypeAliases)
 @Html.HiddenFor(m => m.FieldPropertyAliases)
 @Html.HiddenFor(m => m.PageSize)
 @Html.HiddenFor(m => m.PagingGroupSize)
 @Html.TextBoxFor(m => m.SearchTerm, new { placeholder = "Search..." })
<button id="submit-button">Search</button>

<div id="search-results">
    @{ Html.RenderAction("RenderSearchResults", "Search", new { Model = Model.SearchResults });}
</div>
}

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

Что я не понимаю, так это:

1) как эти значения, предоставляемые Html.HiddenFor и Html.TextBoxFor , передаются в Model.SearchResults.

2) это можетбыть очень простым, но не могли бы вы сказать мне, что это за форматы ..?・ M => m.PageSize Это называется лямбда-функцией?Почему этот формат часто используется в C #?

1 Ответ

0 голосов
/ 15 октября 2018

1) как эти значения, предоставленные Html.HiddenFor и Html.TextBoxFor, передаются в Model.SearchResults.

Поскольку выПри использовании формы HTML любые входные данные, содержащиеся в форме, будут отправлены при ее отправке.Когда вы используете Html.HiddenFor и Html.TextBoxFor, вы генерируете входные данные.Таким образом, при отправке формы эти входные данные также отправляются.Важно отметить, что не все вспомогательные функции Razor делают это.Например, Html.DisplayFor не будет отправлен с формой, поскольку он не генерирует входные данные.Я предлагаю вам прочитать больше о вспомогательных функциях Html на MSDN и больше на отправке формы на W3 .

2) это может бытьдействительно простой, но не могли бы вы сказать мне, что это за форматы ** ..?・ M => m.PageSize Это называется лямбда-функцией?Почему этот ** формат часто используется в C #?

Да, это лямбда-выражение.Они очень полезны для написания запросов LINQ и других вещей.Из базовой статьи о DotNetPerls :

Лямбда-выражение описывает шаблон.Из математики лямбда-исчисление описывает мир в виде шаблонов.В C # лямбда - это функция, которая использует четкий и короткий синтаксис.

Подробнее о лямбда-выражениях в MSDN .

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