在MVC剃刀如何从多个控制器布局访问所选下拉值 [英] In MVC Razor how to access selected drop-down value from layout in multiple controllers

查看:92
本文介绍了在MVC剃刀如何从多个控制器布局访问所选下拉值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题陈述:

如何从布局多个控制器访问所选下拉值,同时还能欣赏执行CRUD操作。

How to access selected drop-down value from layout in multiple controllers while performing CRUD operations in views.

在Layout.cshtml下拉列表:

<li>@Html.Action("Index", "LanguageDropdown", new { languageid = Request["languageId"] })</li>

局部视图的下拉列表:

@model ALCMS.Web.Models.Master_or_Configuration.LanguageDropdownModel
    <script type="text/javascript">
        function GetLanguage() {
            var languageId = $('#LanguageId').val();
            var Url = "@Url.Content("~/MasterConfigGeneral/GetLanguage")";
            $.ajax({
                url: Url,
                dataType: 'json',
                data: { LanguageId: languageId },
                success: function (data) {
                }
            });
        }
        </script>
    <div style="display:inline-block">

   @Html.DropDownListFor(l => l.LanguageID, new SelectList(Model.Languages, "Value", "Text"), "Select Language", new { id = "LanguageId" ,onchange="GetLanguage()" })
        </div>

局部视图控制器:

public ActionResult Index(string languageId)
    {
        //return View();

        var languages = dbEntity.LookupLanguages;
        var model = new LanguageDropdownModel
        {
            LanguageID = languageId,
            Languages = languages.ToList().Select(l => new SelectListItem
            {
                Value = Convert.ToString(l.LanguageID),
                Text = l.Name
            })
        };
        return PartialView(model);
    }

现在多了一个控制器,例如:。Test.Controller我想下的ActionResult方法来访问此

Public ActionResult Create(LanguageDropdownModel objDropdown)
{
//I want to access the dropdown value languageId from the layout
} 

建议我一些方法来做到这一点?

Suggest me some ways to do it???

参考这个问题(由previous问题续):
<一href=\"http://stackoverflow.com/questions/22345493/change-label-display-name-labels-based-on-the-values-from-db-on-dropdown-chang\">Click这里看

推荐答案

您可以使用会话来存储您的下拉值。

You can use Session to store your dropdown value.

通过查看previous问题似乎要调用你的控制器侧以下功能,而下拉列表的值被改变。所以现在在这个函数中保存您的语言会话,比每个控制器使用会话值。我认为这应该为你工作。

By looking at your previous question it seems that you are calling the below function at your controller side while the value of dropdown is being changed. So now in this function save your Language in session and than use that session value in each controller. I think this should work for you.

public JsonResult GetLanguage(int languageID)
{
    // Save LanguageId in Session here
    Sessions.LanugageID = languageID

    JsonResult jsResult = new JsonResult();
    objdbGlobalTenant.ddlLanguage = (from lsr in dbEntity.LocaleStringResources
                                     where lsr.LanguageID == languageID

                                     select new SelectListItem()
                                     {
                                         Text = lsr.ResourceValue,
                                         Value = lsr.ResourceName

                                     }).Distinct().ToList<SelectListItem>();

    //ViewBag.Language = objdbGlobalTenant.ddlLanguage;
    jsResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet;

    return jsResult;
}

这篇关于在MVC剃刀如何从多个控制器布局访问所选下拉值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆