Я пытаюсь добавить частичный вид с именем «Нижний колонтитул» в представление под названием «Индекс».Исключение при добавлении ASP.NET MVC5 Частичные виды
Вид «Индекс» является частью Контролера работника, а «Нижний колонтитул» представляет собой общий вид.
Index Просмотр кода:
@using MVC_Demo1.Models
@Model EmployeeListViewModel
@{
Layout = null;
}
<h2>Hello, @Model.UserName</h2>
<a href="/Authentication/Logout">Logout</a>
<a href="/Employee/AddNew">Add New</a>
@foreach (EmployeeViewModel empObj in Model.employees)
{
<div>Name: @empObj.EmployeeName</div>
<div>Salary: @empObj.EmployeeSalary</div>
<div>Role: @empObj.EmployeeRole</div>
<br />
}
@{Html.RenderPartial("Footer", Model.FooterData);} **// Getting error in this line on trying to add a partial view Footer**
Footer Просмотр кода:
@using MVC_Demo1.ViewModel
@Model FooterViewModel
<div style="text-align:right;background:silver;color:darkcyan;border:1px solid gray; margin-top:2px; padding-right: 10px;">
@Model.CompanyName @Model.Year
</div>
EmployeeListViewModel класс:
public class EmployeeListViewModel
{
public List<EmployeeViewModel> employees { get; set; }
public string UserName { get; set; }
public FooterViewModel FooterData { get; set; }
}
FooterViewModel класс:
public class FooterViewModel
{
public string CompanyName { get; set; }
public string Year { get; set; }
}
Сотрудник класса контроллера:
public class EmployeeController : Controller
{
// GET: Test
[Authorize]
public ActionResult Index()
{
EmployeeBusinessLayer empBizObj = new EmployeeBusinessLayer();
List<Employee> lstEmps = new List<Employee>();
lstEmps = empBizObj.GetEmployees();
EmployeeListViewModel empListViewObj = new EmployeeListViewModel();
empListViewObj.UserName = User.Identity.Name;
List<EmployeeViewModel> lstEmpView = new List<EmployeeViewModel>();
foreach (Employee emp in lstEmps)
{
EmployeeViewModel empViewObj = new EmployeeViewModel();
empViewObj.EmployeeName = emp.FName + " " + emp.LName;
empViewObj.EmployeeSalary = emp.Salary.ToString("c");
empViewObj.SetEmployeeRole(emp.Salary);
lstEmpView.Add(empViewObj);
}
empListViewObj.employees = lstEmpView;
empListViewObj.FooterData = new FooterViewModel();
empListViewObj.FooterData.CompanyName = "Company name";
empListViewObj.FooterData.Year = DateTime.Now.Year.ToString();
return View("Index", empListViewObj);
}
}
Сообщение об исключении: Описание: Произошла ошибка во время компиляции ресурса, необходимого для обслуживания этого запроса. Ознакомьтесь с приведенными ниже конкретными данными об ошибках и соответствующим образом измените исходный код.
Компилятор Сообщение об ошибке: CS1973: «System.Web.Mvc.HtmlHelper» не имеет применимый метод, названный «RenderPartial», но, как представляется, метод расширения с таким именем. Методы расширения не могут динамически отправляться. Рассмотрите возможность использования динамических аргументов или вызова метода расширения без синтаксиса метода расширения.
Пожалуйста, дайте мне знать, что я здесь отсутствует, чтобы добавить частичный вид в представление. Если я просто удалю вызов для добавления частичного представления «Нижний колонтитул» из представления «Индекс», представление выглядит просто отлично.
Удалить фигурные скобки вокруг Html.RenderPartial и конца строки (;) – garethb
@garethb Пытался обновить код, как @ Html.RenderPartial («Нижний колонтитул», @ Model.FooterData); и @ Html.RenderPartial («Нижний колонтитул», Model.FooterData); Но все же заканчивается с той же ошибкой – Manju