2016-01-12 1 views
1

Это мой код контроллера.Работа с несколькими экземплярами частичных представлений и привязка модели в ASP.NET MVC 4 Entity Framework

namespace MultipleInstance.Controllers 
{ 
    public class Default1Controller : Controller 
    { 
    private MVCDemoEntities db = new MVCDemoEntities(); 

    public ActionResult Index() 
    { 
     Order ord = new Order(); 
     //ord.BillingAddress = new Address1(); 
     //ord.ShippingAddress = new Address(); 
     return View(ord); 
    } 

    public ActionResult ProcessForm(Order ord) 
    { 

     return PartialView("Index"); 

     } 


    } 
} 

Это мой индексный вид.

@using(Html.BeginForm("ProcessForm","Default1",FormMethod.Post)) 
{ 
    <h3>Basic Details</h3> 
    @Html.Partial("_BasicDetails") 
    <h3>Shipping Address</h3> 
    @Html.Partial("_Address", 
    new ViewDataDictionary() 
    { 
    TemplateInfo = new TemplateInfo() 
     { HtmlFieldPrefix = "ShippingAddress" } }) 


     <input type="submit" value="Submit" /> 
} 

это мои две частичные _BasicDetails.cshtml и _Address.cshtml

@model MultipleInstance.Order 

<table> 
    <tr> 
     <td>@Html.LabelFor(m => m.OrderID_)</td> 
     <td>@Html.TextBoxFor(m => m.OrderID_)</td> 
    </tr> 
    <tr> 
     <td>@Html.LabelFor(m => m.CustomerID_)</td> 
     <td>@Html.TextBoxFor(m => m.CustomerID_)</td> 
    </tr> 
</table> 

Это _Address.cshtml вид.

@model MultipleInstance.Address 

<table> 
    <tr> 
     <td>@Html.LabelFor(m => m.Street1)</td> 
     <td>@Html.TextBoxFor(m => m.Street1)</td> 
    </tr> 
    <tr> 
     <td>@Html.LabelFor(m => m.Street2)</td> 
     <td>@Html.TextBoxFor(m => m.Street2)</td> 
    </tr> 
    <tr> 
     <td>@Html.LabelFor(m => m.Country)</td> 
     <td>@Html.TextBoxFor(m => m.Country)</td> 
    </tr> 
    <tr> 
     <td>@Html.LabelFor(m => m.PostalCode)</td> 
     <td>@Html.TextBoxFor(m => m.PostalCode)</td> 
    </tr> 
</table> 

Когда я запускаю вышеуказанный код, возникает следующая ошибка. Частичный вид '_BasicDetails' не найден или механизм просмотра не поддерживает найденные местоположения. Может ли кто-нибудь помочь мне, где я иду не так? Или мне нужно что-то изменить в моем методе действий?

Это моя модель класса

public partial class Order 
    { 
     public int Id { get; set; } 
     public string OrderID_ { get; set; } 
     public string CustomerID_ { get; set; } 
     public string SelectType { get; set; } 
     public Address ShippingAddress { get; set; } 

    } 



public partial class Address 
    { 
     public int Id { get; set; } 
     public string Street1 { get; set; } 
     public string Street2 { get; set; } 
     public string Country { get; set; } 
     public string PostalCode { get; set; } 
    } 

Спасибо заранее.

+0

каков путь вашего частичного представления – simsim

+0

и каков путь вашего индексного вида – simsim

+0

~ Просмотры \ shared \ _BasicDetails.cshtml –

ответ

1

это должно работать

@Html.Partial("~Views/shared/_BasicDetails.cshtml", Model) 

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

+0

Да Обе стороны работают. Может ли кто-нибудь сказать мне, как сохранять данные из всех таблиц в db? –

+0

Нужно ли писать отдельный метод действия? Я использую инфраструктуру Entity. Пожалуйста, дайте мне некоторую идею –

+0

в качестве лучшей практики, держите модель контроллера вида чистой от любого связанного с бизнесом кодирования, т. Е. Создайте бизнес-модель, которая связывается с вашими слоями базы данных, погода - это инфраструктура сущности или любое другое среднее значение, и просто назовите это бизнес-модель в вашем контроллере, например: «Employees.GetDetails()», чтобы использовать ее в представлении, которое показывает данные одного сотрудника, и «Employees.ListAll()», чтобы получить список сотрудников, которых у вас есть ... и т. д. – simsim

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