2013-04-23 2 views
1

저는 처음으로 ASP.NET MVC3 웹 사이트를 개발하고 있습니다. 내 개발 기계에 다 잘 작동합니다.ASP.NET MVC : 테스트 서버의 라우팅 오류

I bin은 테스트 시스템에 모든 것을 배포했습니다. 일부 누락 된 DLL이 발행 한 웹 사이트는 다음 URL에서 작동하는 것 같았다 :

http://localhost/Test%20Website 

을하지만 난 질문에 대한 무관하다 내가 Infragistics의 그리드를 사용하고 있기 때문에 인라인 자바 스크립트에 의해 생성 된 다음 링크를 (클릭하면) :

<a href=\"/Patient/Edit/' + val + '\"><img src=\"../Resources/Edit.png\" align=\"left \"></a> 

내가 얻을 HTTP 오류 404.0 - 물리적 경로이기 때문에, 논리적 인을 찾을 수 없습니다 : C : \을 Inetpub \ wwwroot에 \ 환자의 \ 편집 \ 537

물리적 경로해야하지만 : C : \ inetpub \ wwwroot \ Test Website \ Views \ Patient \ Edit \ 537 (atleast ... 제 생각에는 ... MVC 라우팅이 어떻게 작동하는지 이해하지 못합니다)

ActionLink HTML 도우미 등을 사용하여 만든 링크는 괜찮습니다. 그래서이 작동합니다 @ Html.ActionLink ("정보", "정보", "홈") 그리고이 작품 : @ Html.Partial, 그래서

(새 SearchModel을() "검색") 내 질문은, 어떻게이 문제들을 해결합니까?

p .: 리소스의 모든 이미지가 작동하지 않습니다. 답변

미안 해요 후 한숨

UPDATE는 Apparantly 히 문자열로 자바 스크립트 함수에서 일어나는 것이 중요합니다. 왜냐하면 저는 Infragistic의 JQuery 그리드에서 FormatterFunction을 사용하고 있기 때문입니다. 좋아, 이것은 내가 지금까지있어 무엇 :

"function(val) {return '<a href=\"" + @Url.Content("~/Patient/Edit/" + val) + "\"><img src=\"../Resources/Edit.png\" align=\"left\"></a>'; }" 

이름 '발'은 논리적 현재 컨텍스트에 존재하지 않습니다. 하지만 어떻게 해결 해야할지 모르겠다. 왜냐하면 자바 스크립트/면도기/기타에 대한 나의 제한된 지식 때문이다. 도와 주시겠습니까? 이 경우 Val은 값이 바인딩되는 열의 값입니다. 이 경우 환자의 ID입니다.

는 Ego4eg는 더 많은 코드

그것은 Infragistics의 JQuery와 그리드의 물었다. 이 그리드에는 문자열을 매개 변수로 갖는 FormatterFunction이 있습니다. 이 문자열은 자바 스크립트 함수 여야합니다. 아이디어를 얻으려면 다음과 같이 입력하십시오.

@(Html.Infragistics() 
.Grid(Model) 
.ID("grid1") 
.AutoGenerateColumns(false) 
.Columns(column => { 
    //column.For(p => p.ID).FormatterFunction("function(val) {return '<a href=\"/Patient/Edit/' + val + '\"><img src=\"../Resources/Edit.png\" align=\"left\"></a>'; }").Width("25px").HeaderText(" "); 
    column.For(p => p.ID).FormatterFunction("function(val) {return '<a href=\"" + @Url.Action("Edit", "Patient", new { id = val }) + "\"><img src=\"../Resources/Edit.png\" align=\"left\"></a>'; }").Width("25px").HeaderText(" "); 
    column.For(p => p.ID).FormatterFunction("function(val) {return '<a href=\"/Home/CreateRemark/?patientID=' + val + '\"><img src=\"../Resources/add.png\" align=\"left\"></a>'; }").Width("25px").HeaderText(" "); 
    column.For(p => p.FullName).DataType("string").HeaderText("Naam").Width("250px"); 
    column.For(p => p.Address).DataType("string").HeaderText("Adres").Width("400px"); 
    column.For(p => p.BSN).DataType("string").HeaderText("BSN").Width("85px"); 
    column.For(p => p.DateOfBirthAsString).DataType("string").HeaderText("Geboortedatum").Width("85px"); 
    column.For(p => p.GeneralPractitionerName).DataType("string").HeaderText("Huisarts"); 
}) 

희망이 있습니다.

답변

1

같은 Url.Content를 사용하는 것이 좋을 것이다 :이 시도

<a href=\"@Url.Content("~/Patient/Edit/" + val)\"> 
+0

물결표는 첫 번째 예제 작업을 wouldnt하지만 두 번째는 괜찮 ... – Steve

+0

사실, 내가 편집 대답. – Egor4eg

+0

우선, 답변 해 주셔서 대단히 감사합니다. 나는 몇 시간 동안 이것에 지금있다.둘째, apparantly 그것은 문자열 인 인라인 자바 스크립트 함수에있어 중요하므로 내 질문을 업데이 트했습니다. 바라기를 바랍니다. 하단의 업데이트 된 질문을 참조하십시오. –

0

:

<a href ="Url.Action("Edit", "Patient", new { id = val })" /> 
+0

먼저 답장을 보내 주셔서 감사합니다. 결국 당신의 대답도 좋았습니다. 그러나 Egor4eg는 최종 결론에 도움이되었으므로 크레딧을받을 자격이 있습니다. –