2011-10-26 2 views
3

T4MVC와 강력한 형식의 URL을 사용하고 JS에서 사용하고 싶지만 몇 가지 문제가 있습니다. 의 내가 사업부에 URL을로드하고 싶은 말은하자 :T4MVC urls in javascript : 대체 경로 값

$('#mydiv').load("@Url.Action(MVC.Home.Index())"); //that works 

하지만 내 작업은 일부 JS-속성 값과 파라미터 화 된 경우에? 내 매개 변수가 INT 만의 GUID가 아닌 경우 GUID 기본 값이 너무 길어서

public ActionResult Index2(int id){} 

var id = $('#mydiv').attr('index'); 
$('#mydiv').load("@Url.Action(MVC.Home.Index2(id))"); //this certainly doesn't work, since "id" is a JS variable 
$('#mydiv').load("@Url.Action(MVC.Home.Index2(-1))".replace("-1", id)); //this is a workaround I use now, but don't like it :) 

그러나 해결 방법은 ..

다른 솔루션은 무엇입니까 추한이됩니까? 감사합니다.

답변

4

일반적인 접근 방법이 좋을 수도 있습니다.

@Url.Action(MVC.Home.Index2(-1)) 

@Url.Action(MVC.Home.Index2().AddRouteValue("id", -1)) 

에 당신이 타입 시스템 해결하기이 방법을 원하는 더미 어떤 값을 전달할 수 있습니다 GUID를 케이스의 경우, 변경할 수 있습니다.

+0

감사합니다. 좋은 방법이지만 매개 변수 이름을 변경하면 작업이 중지됩니다. – Shaddix

+1

예, 작은 조각의 T4MVC 값이 손실됩니다. 당신이 더 잘할 수 있는지 확신하지 못합니다. T4MVC를 완전히 사용하면 (첫 번째 줄 에서처럼) 매개 변수 유형이 적용되며 명시 적으로 잘못된 유형을 사용하려고합니다. :) –