У меня есть страница финалиста, которая отображает список финалистов, которые можно щелкнуть на странице с одним просмотром. У меня есть XML-документ, который передается в модель, и я проливаю эти данные на главную страницу финалистов, но я не могу понять, как захватить идентификатор финалиста щелчка и отобразить только этого финалиста на странице с одним просмотром.Возврат одного элемента в модели - mvc razor
Любой помощь ценятся, вот мой контроллер прямо сейчас:
Я пытаюсь передать вновь созданную модель в класс к SingleView, но я не знаю, как фильтровать ее знать, какой финалист был нажмите, и какой финалист будет отображаться на странице с одним просмотром.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Xml.Linq;
using ProjectX_Awards.Models;
namespace ProjectX_Awards.Controllers
{
public class FinalistsController : Controller
{
//
// GET: /Finalists/
public ActionResult Index()
{
var doc = XElement.Load(HttpContext.Server.MapPath("~/finalist.xml"));
var finalists = doc.Descendants("finalist").Select(f => new Models.Finalist()
{
Id = (int)f.Attribute("id"),
Name = f.Descendants("name").First().Value,
Description = f.Descendants("description").First().Value,
Link = f.Descendants("webLink").First().Value,
Photo = f.Descendants("photoUrl").First().Value
});
return View(finalists);
}
public ActionResult SingleView(Finalist model)
{
var singleFinalist = model;
return View(singleFinalist);
}
}
}
Любой способ сделать, чтобы это без того, чтобы передать XML-документ в качестве модели, которую я уже делал в Ind экс-Action? Я пытаюсь не повторять код. –
Вы можете кэшировать XML-документ или даже проанализированный список. – Kenneth
FWIW, никогда не делайте жестких кодовых URL-адресов. Используйте 'Html.ActionLink (« SingleView »,« YourController », новый {id = finalist.id})'. Если вы обновите, я буду поддерживать, но я не могу рекомендовать ответ в его нынешнем виде. –