2015-01-26 1 views
0

У меня есть индексный просмотр, который имеет выпадающий список:Как передать идентификатор выбранного выпадающего-списка частичный вид

@Html.DropDownList("ABC", (SelectList) ViewBag.ABC, 
    "-- Select item --", new { @onchange ="funcVes(this.value)"}) 
<div id="Vresult"> 

</div> 

на JavaScript, для которого находится в верхней части этого Индексный, который говорит

function funcVes(e) { 
    alert(e); 
    $("#tabs").tabs(); 
    $('#tabsDiv').show(); 
    $('#Vresult').load('/ABC/PartialAction?id=' + e); 
}; 

PartialAction метод делает это:

public ActionResult PartialAction(int id) { 
    return PartialView("_PVIEW"); 
} 

Теперь, _PVIEW имеет много TextBox полея, которые я требую, чтобы быть заполнен со стороны контроллера

_PVIEW

@model Project.ViewModels.VD 

//...scripts 
//...begin form.. 

@Html.EditorFor(model => model.Main_ID) //for dropdownlist 
//...20 similar boxes for related information pertaining to that dropdownlist 

ВИД МОДЕЛЬ

содержит как модель индекса и базовую модель, частичный вид построен на

public class VD 
{ 
    public int? Main_ID { get; set; } 

    public a aa { get; set; } //underlying models/tables which contain the information for the 20 textboxes to be filled out 
    public b bb{ get; set; } //index model 
} 

Мне в основном нужно заполнить это представление в зависимости от выпадающего списка списка ...

изменил как индекс, так и частичный вид, чтобы использовать ту же модель представления, которая содержит обе свои независимые модели.

Любая помощь по передаче идентификатора, выбранного из выпадающего списка, в текстовое поле, содержащееся на частичном представлении с помощью контроллера/javascript и связанной с ним информации для других таблиц?

ответ

0

Ваш PartialAction не извлекает никаких данных или не предоставляет модель для ее просмотра. Когда вы используете $.load с частичным представлением, нет данных или модели, предоставленных с «текущей загруженной страницы». Запрос сервера PartialAction полностью независим, поэтому ему необходимо получить собственные данные.

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

public ActionResult PartialAction(int id) { 
    var data = someDataModel.Find(id); 
    var vm = new VD() 
    { 
     Main_ID = id, 
     aa = data.aa, 
     bb = data.bb 
    }; 
    return PartialView("_PVIEW", vm); 
} 

вкладки Если вы используете инструмент, как Fiddler, или F12 Chrome «Сеть» , чтобы наблюдать за сетевым трафиком, вы увидите, что сырые страницы передаются и что в них. Это может помочь вам понять взаимосвязь между запросами и представлениями.

+0

Я обновил, чтобы показать свой частичный вид – Newbie101

+0

@ Newbie101: Видимо, вы думаете, что обновили его, но ваши изменения не видны :) –

+0

черт возьми, все мои изменения не сэкономили. просто переделал это ... – Newbie101

 Смежные вопросы

  • Нет связанных вопросов^_^