2010-05-19 2 views
1

MVC를 사용하여 부분 뷰에있는 양식을 통해 이미지를 업로드하려고합니다.MVC : 부분보기에서 이미지 업로드, 라우팅 문제

보기 코드 :

<form action="/Item/ImageUpload" method="post" enctype="multipart/form-data"> 
    <%= Html.TextBox("ItemId",Model.ItemId) %> 
    <input type="file" name="file" id="file" /> 
    <input type="submit" value="Add" /> 
</form> 

액션 코드 :

이미지 그러나 대신 리디렉션의

에 예상대로 작동 성공

모든 데이터 조작을 업로드

public void ImageUpload(string ItemId, HttpPostedFileBase file) 
{ 
// upload image 
// Add Image record to database 
// Associate Image record to Item record 
//Go back to existing view where the partial view sits 
RedirectToAction("Details/"+ItemId); 
} 

"Item/Details/id"보기, "/ Item/ImageUpload"페이지로 이동

jsonResultAction을 사용하는 것을 포함하여 여러 가지 다른 방법을 시도했지만이 모든 결과가 실패했습니다.

어디서 잘못 했습니까? 사전에 감사

편집 : 난 그냥 작동하지 않는 코드에 의해 렌더링되는 모든 라우팅을 실현

. 예

: [ <%= Html.ActionLink("Log Off", "LogOff", "Account") %> ] 대신 하드 모든 작업 부호화 된 <a href="">Home</a>

그러나 모든 라우팅 렌더링 <a href="/Account/LogOff">Home</a> 렌더링.

어디에서 봤지? 나는 그것을 회상 할 수없는 문제가있다.

코드에 대한 Global.asax.cs

public class MvcApplication : System.Web.HttpApplication 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 


      //routes.MapRoute(
      // "ImageResize", 
      // "{controller}/{action}/{id}/{value}", 
      // new { controller = "Image", action = "ShowImage", id = "", value = "" }); 

      routes.MapRoute(
       "Default",            // Route name 
       "{controller}/{action}/{id}/",       // URL with parameters 
       new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
      ); 


     } 

     protected void Application_Start() 
     { 
      RegisterRoutes(RouteTable.Routes); 
     } 


    } 

답변

1

난 당신이 이미 다음 질문에 그 추가가 키워드 return이있는 경우 return RedirectToAction("Deati....

를 사용할 필요가 생각 나는이 대답을 제거 할 수 있습니다

이 경우 편집

나는 경로 어를 써서 무형 문화 유산은 그 다음 내가 자동 생성의 계정 컨트롤러에서 생각이 시점에서 제공 할 수있는 뭔가 2

모든 편집

return RedirectToRoute("name", model); 같은 말을 할 수 있습니다.

public ActionResult LogOff() 
{ 

    FormsAuth.SignOut(); 

    return RedirectToAction("Index", "Home"); 
} 

가 제시 한 코드를 보면 내가 public void ImageUpload보다는 public ActionResult ImageUpload 참조하십시오.

+0

나는 노력도하지 않았다. –

+0

ActionResult를 반환하여 다시 시도했지만 페이지는 "Route table의 경로가 제공된 값과 일치하지 않음"으로 "Item/ImageUpload"로 이동했습니다. 오류 내 프로젝트에서 그 뷰를 전혀 만들지 마라. –

0
RedirectToAction("Details/"+ItemId); 

이 당신은 그냥 같은 RedirectToAction에 물건을 추가 해달라고

return RedirectToAction("Details", new {Id = ItemId}); 

해야합니다. 리디렉션을 사용하여 리디렉션 할 메서드에 대한 매개 변수를 선택합니다.