感谢所有人回答我的问题,特别感谢保罗先生为我们提供了出色的例子。 首先,我不太确定自己缺少什么,因此我的头衔很可能会引起误解或不好。随时进行更正。
我正在尝试使用ajax进行分页。我正在显示的是按降序排列的博客文章列表。一个视图提供五个条目,然后按“下一步”图标,您可以看到另外五个。真的很经典。
一般来说,我是编程新手,更不用说ajax了,所以我发现了this article。
我很难理解这部分。 对于_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 这称为lambda函数吗?为什么在C#中经常使用这种格式?
答案 0 :(得分:0)
1)Html.HiddenFor和Html.TextBoxFor提供的这些值如何 提交给Model.SearchResults。
由于您使用的是HTML表单,因此提交表单后,表单中包含的所有输入都将被提交。当您使用Html.HiddenFor和Html.TextBoxFor时,您正在生成输入。因此,提交表单时,这些输入也将提交。重要的是要注意,并非所有的Razor帮助程序功能都可以执行此操作。例如,Html.DisplayFor将不会与表单一起提交,因为它不会生成输入。我建议您阅读更多关于numpy.loadtxt()
和更多有关Html helper functions on the MSDN的信息。
2)这可能是非常基本的,但是您能告诉我这些格式是什么 **是..?・ m => m.PageSize这称为lambda函数吗?为什么是这样 ** C#中经常使用的格式?
是的,这是一个lambda表达式。它们对于编写LINQ查询和其他东西非常有用。来自form submission on W3:
lambda表达式描述了一种模式。从数学上讲,lambda 微积分以模式描述了世界。在C#中,lambda是一个函数 使用清晰明了的语法。