2016-06-16 3 views
-2

У меня есть сайт MVC, и я использую одну и ту же страницу «_layout» для всего представления. На странице _layout у меня есть элемент управления.MVC 5 Layout page

Я хочу прочитать выбранное значение элемента управления с других страниц.

Можете ли вы помочь мне понять, как это сделать?

Редактировать:

_Layout.cshtml

<div class="col-sm-4 col-xs-6"> 
    <label class="col-sm-2 control-label" for="slt_Aziende">Azienda:</label> 
    <select id="mySharedSelectControl"> 
     <option value="1">value 1</option> 
     <option value="2">value 2</option> 
    </select> 
</div> 

Index.cshtlm (используя _Layout.cshtml)

@model IEnumerable<MySite.Models.MyModel> 
@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

MyModelController

public class MyModelController : Controller 
{ 
    public ActionResult Index() 
    {   
     //get value from mySharedSelectControl from Layout page 
     var selectedValueFromLayoutPage; 

     //do something 
     return View(); 
    } 
} 
+0

показать некоторый код ~~ –

+0

Вы хотите, чтобы вы читали значение по javascript? – Mairaj

ответ

0

Вы не можете непосредственно read значение controls в Controller вам нужно send значение dropdown к controller и чем процесс, что вы хотите.

Или вы можете прямо читать значение dropdown от javascript в других views и выполнять свою обработку.

1

Основываясь на том, что @Mairaj сказал правильно, вы не можете напрямую считывать значения элементов управления в своем контроллере.

Что вы можете сделать, это создать 1 Javascript функция, как это:

$(document).ready(function() { 
      $("#mySharedSelectControl").change(function() { 
       var dropdownValue = $(this).val(); 
       $.ajax({ 
        url: "@Url.Action("PutValueinSession", "MyModel")", //Action method on which you want to send this dropdown value 
        data: { id: dropdownValue }, 
        success: function (e) { 
         window.location = window.location; 
        } 
       }); 
      }); 
     }); 

Вы можете создать 1 метод, в котором вы можете поместить это значение в сессии, и используется во всей странице, как показано ниже:

public JsonResult PutValueinSession(int id) 
     { 
      Session["DropdownControlValue"] = id; 
      return Json(new { Result = "" }, JsonRequestBehavior.AllowGet); 
     } 

Теперь вы можете получить это значение на любой странице:

public ActionResult Index() 
    {   
     //get value from mySharedSelectControl from Layout page 
     var selectedValueFromLayoutPage=Session["DropdownControlValue"]; 

     //do something 
     return View(); 
    } 

Я надеюсь, что это он lp ..