asp.net-mvc – MVC 3布局页面,Razor模板和下拉列表
发布时间:2020-07-23 21:14:32  所属栏目:asp.Net  来源:互联网 
            导读:我想在我的网站的所有页面包括一个下拉列表的年。我假设一个好的地方放这个逻辑是在布局页面(_layout.cshtml)。如果用户更改我想要更改年会话(ModelBinder)的年份,也要更改。这是很容易做ASP.NET web表单,但似乎几乎不可能做到在MVC。我试着没有运气的局部
                
                
                
            | 
                         我想在我的网站的所有页面包括一个下拉列表的年。我假设一个好的地方放这个逻辑是在布局页面(_layout.cshtml)。如果用户更改我想要更改年会话(ModelBinder)的年份,也要更改。这是很容易做ASP.NET web表单,但似乎几乎不可能做到在MVC。我试着没有运气的局部视图。任何人有任何想法? 解决方法像往常一样,你可以从定义视图模型开始:public class YearsViewModel
{
    public string Year { get; set; }
    public IEnumerable<SelectListItem> Years
    {
        get
        {
            return new SelectList(
                Enumerable.Range(1900,112)
                .OrderByDescending(year => year)
                .Select(year => new SelectListItem
                {
                    Value = year.ToString(),Text = year.ToString()
                }
            ),"Value","Text");
        }
    }
} 
 然后一个控制器: public class YearsController : Controller
{
    public ActionResult Index()
    {
        return View(new YearsViewModel());
    }
    [HttpPost]
    public ActionResult Index(int year)
    {
        // TODO: do something with the selected year
        return new EmptyResult();
    }
} 
 以及索引操作的相应视图: @model SomeAppName.Models.YearsViewModel
@{
    Layout = null;
}
@Html.DropDownListFor(x => x.Year,Model.Years) 
 最后在你的_Layout.cshtml里面你可以使用这个控制器: <div id="selectyear">@Html.Action("index","years")</div> 
 并附加相应的脚本,当值发生更改时,将发送AJAX请求: $(function () {
    $('#selectyear select').change(function () {
        $.post('@Url.Action("index","years")',{ year: $(this).val() },function (result) {
        });
    });
});                        (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
推荐文章
            站长推荐
            - asp.net-mvc – DotNetOpenAuth在ASP.NET MVC中的
 - asp.net-mvc-3 – MVC3视图继承不可能?
 - asp.net-mvc – 在部署MVC 2 Web应用程序时要绝对
 - ASP.NET:web.config在哪里/如何缓存?
 - asp.net – 如何序列化LINQ-to-SQL惰性列表
 - asp.net neatUpload 支持大文件上传组件
 - asp.net – 在为app_offline.htm提供特定URL时,将
 - asp.net-mvc – 我可以从服务器端的持票令牌中检
 - asp.net – WebForms:MasterPages中的动态(或绝
 - asp.net – 如何以编程方式从LDAP检索信息
 
热点阅读
            