2011-11-28 4 views
23

이 html에는 문제가 있습니까? 마스터 페이지에서 "CreateParts"보기로 이동하는 링크가 필요합니다. 나는 컨트롤러 'PartList'에 parentPartId 매개 변수가있는 'CreateParts'작업을 가지고 있습니다. 내가 SiteMaster의 메뉴에서 '새로 만들기 파트'를 클릭하면Html.ActionLink에서 컨트롤러 동작에 매개 변수 전달

<li id="taskAdminPartCreate" runat="server"> 
            <%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 })%></li> 

내 컨트롤러 액션이

public ActionResult CreateParts(int parentPartId) 
    { 
     HSPartList objHSPart = new HSPartList(); 
     objHSPart.Id = parentPartId; 
     return View(objHSPart); 
    } 

처럼, 나는 예외를 얻을. 저를 도와주세요.

+2

질문에 예외를 추가하는 것이 좋습니다 :) –

+13

젠장, 도대체 runat = 서버가 그 불쌍한 리에서 뭐하는거야? 강간 MVC : – rouen

+0

rouen, 당신은 최선의 관행이 아닌 asp.net MVC –

답변

55

잘못된 과부하가 사용 중입니다. 이 오버로드

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper, 
    string linkText, 
    string actionName, 
    string controllerName, 
    Object routeValues, 
    Object htmlAttributes 
) 

를 사용해야하고 올바른 코드는

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%> 

참고가 될 것이라고 끝에 추가 매개 변수. 다른 과부하의 경우 LinkExtensions.ActionLink Method을 방문하십시오. 보시다시피 사용하려고하는 과부하가 없습니다 (string, string, string, object). 허용 대답에

+1

당신은 위대한 @archill입니다. 감사합니다. 많은 시간을 절약했습니다. 감사합니다. –

+0

감사합니다. –

10

잘못된 ActionLink 오버로드를 사용 중입니다. 시도해보십시오

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%> 
9

추가

당신은 링크에 대한 새로운 사용자 지정 특성이나 스타일을 만들 수 없습니다 actionlink을 생성합니다

@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 },null) 

이를 사용하려고합니다.

그러나 ActionLink 확장의 4 번째 매개 변수가 문제를 해결합니다. 사용자 정의를 위해 네 번째 매개 변수를 사용하십시오.

@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 }, new { @class = "btn btn-info", @target = "_blank" })