编程语言
首页 > 编程语言> > c# – 在不使用AJAX的情况下重新加载ASP.NET MVC3部分视图

c# – 在不使用AJAX的情况下重新加载ASP.NET MVC3部分视图

作者:互联网

我有一个带Razor的MVC3应用程序,我在里面创建了一个View渲染部分视图.这是主视图的样子:

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

@* Other HTML elements *@

在_SearchFilters部分视图中,我在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?

UPDATE

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>();
        }
    }

}

谢谢

弗朗切斯科

解决方法:

我目前没有IDE,所以无法测试,但这可能有效:

选择月份

编辑:

 @Html.DropDownListFor(m => m.Month, 
Model.MonthsList.Select(
        t => new SelectListItem {
                 Text = t.Name,
                 Value = t.Value,
                 Selected = t.Value == Model.Month,
        },

 Model.Month.ToString(), new { @disabled = "disabled" })

标签:c,partial-views,asp-net-mvc-3,razor
来源: https://codeday.me/bug/20190521/1148643.html