1
ASP.NET MVC를 배우려고합니다. 따라서 테스트 프로젝트로이 목록에서 인덱스 목록을 표시하고 도시를 클릭하면 해당 도시의 속성을 볼 수 있습니다 . 그래서 지금은 도시의 목록을 확인하고 나는 내가 URL 등을 얻을 하나를 클릭 한 후EF에서 내부 조인을 반환하십시오.
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을 마련하기 위해 Global.asax에 약간의 변경을했다 : /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 == 도시 및 빨간색 경계가없는 곳을 추가하려고했지만 언제 나는 실행한다 : 사전에 전달 된 모델 항목은 'System.Collections.Generic.List'1 [accomm2.Models.City]'유형이지만이 사전에는 'System.Collections.Generic'유형의 모델 항목이 필요하다. IEnumerable'1 [accomm2.Models.Property] '. – Teodor
이름을 얻으려면 City 테이블에 가입해야합니다. 이 경우 도시 ID가 필요하지 않습니다. – anon