Я пытаюсь изучить ASP.NET MVC, поэтому я сделал это как тестовый проект, где я хочу отображать в Index список городов и когда вы нажимаете на город, чтобы увидеть свойства в этих городах , Возвращение внутреннего соединения в EF
Тогда я сделал некоторые изменения в global.asax для того, чтобы придумать хорошие адреса:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Home-Browse",
"Accommodation-{city}",
new { controller = "Home", action = "Browse", city = "" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Так что теперь после того, как я вижу, список городов и я нажимаю один я получаю URL, как: /Accommodation-Amsterdam
Моя проблема заключается в том, что я не знаю, как сделать внутреннее соединение, чтобы сообщить контроллеру показать мне свойства в выбранной области. (Я сказал вам, что я только учусь это)
Мой домашний контроллер:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using accomm2.Models;
namespace accomm2.Controllers
{
[HandleError]
public class HomeController : Controller
{
dataEntities _db;
public HomeController()
{
_db = new dataEntities();
}
public ActionResult Index()
{
ViewData.Model = _db.Cities.ToList();
return View();
}
public ActionResult Browse()
{
//ViewData.Model = _db.Properties.ToList();
var properties = from c in _db.Cities
from p in c.Properties
where c.CityId == CityId
select c;
return View(properties.ToList());
}
}
}
Может кто-нибудь помочь мне с моим запросом Linq или по крайней мере направить меня на правильный путь?
Спасибо, но все еще там, где c.CityId == CityId находится в красном цвете и говорит мне, что имя CityId не существует в текущем контексте ... – Teodor
попытался добавить, где c.CityName == Город и нет красной границы, но когда Я запустил i get: Элемент модели, переданный в словарь, имеет тип «System.Collections.Generic.List'1 [accomm2.Models.City]», но для этого словаря требуется элемент модели типа «System.Collections.Generic. IEnumerable'1 [accomm2.Models.Property]. – Teodor
Вам также нужно будет присоединиться к вашей таблице City, чтобы добраться до названия. В этом случае вам не нужен идентификатор города. – anon