gpt4 book ai didi

c# - 不使用 AJAX 重新加载 ASP.NET MVC3 局部 View

转载 作者:太空狗 更新时间:2023-10-29 23:18:17 25 4
gpt4 key购买 nike

我有一个带有 Razor 的 MVC3 应用程序,我创建了一个在内部呈现局部 View 的 View 。这是主视图的样子:

@{Html.RenderPartial("_SearchFilters", Model.SearchFilters);}

@* Other HTML elements *@

_SearchFilters 局部 View 中,我在 Form 元素中有以下 DropDownLists:

Choose Year
@Html.DropDownListFor(m => m.Year, new SelectList(Model.YearsList, "Value", "Text"), DateTime.Now.Year)

Choose Month
@Html.DropDownListFor(m => m.Month, new SelectList(Model.MonthsList, "Value", "Text"), Model.Month.ToString(), new { @disabled = "disabled" })


<input type="submit" value="Display" />

我希望在 提交 时,两个 DropDownLists 在重新加载 View 时保持它们的状态,即 用户选择的值过滤后的数据。

有没有不使用 AJAX 的方法?

更新

ViewModel如下:

public class TableSearchFiltersViewModel
{
public bool YTM { get; set; }

public int? Month { get; set; }

public int? Year { get; set; }

public IEnumerable<SelectListItem> YearsList
{
get
{
return Enumerable.Range(2011, (DateTime.Now.Year - 2011 + 4)).Select(m => new SelectListItem
{
Value = m.ToString(),
Text = m.ToString(),
}).OrderBy(m => m.Value);
}
}

public IEnumerable<SelectListItem> MonthsList
{
get
{
return Enumerable.Empty<SelectListItem>();
}
}

谢谢

弗朗切斯科

最佳答案

当您将表单提交给相应的 Controller 操作时,该操作应将某个 View 模型作为输入参数。此 View 模型的属性将从包含在表单中的输入字段绑定(bind),包括两个下拉列表的选定值。然后 Controller 操作可以返回相同的 View ,该 View 将保留下拉框的选定值。

不过我建议您使用编辑器模板而不是渲染部分模板,因为这将确保正确命名下拉菜单并最终保留选定的值:

@Html.EditorFor(x => x.SearchFilters)

关于c# - 不使用 AJAX 重新加载 ASP.NET MVC3 局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5867356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com