2012-09-27 2 views
1

.NET MVC 4에 약간의 문제가 생겼습니다. 어떻게 작동하는지 배우고 몇 가지 자습서를 마친 후에 동일한 문제가 계속 발생합니다..NET MVC 4 HttpPost wrong wrong

페이지가로드 될 때 내 기본 색인 방법이 호출되어야합니다.

public ActionResult Index() { 
     var result = (from Product in db.Products 
        orderby Product.Id ascending 
        select Product); 
     return View(result.ToList()); 
    } 

방법은

@using (Html.BeginForm("Index", "Stap1", FormMethod.Post, new { id = "form1" })) 
{ 
    <select id="select" size="4" name="product"> 
     @foreach (var item in Model) 
     { 
      <option value="@item.Id" >@Html.DisplayFor(modelItem => item.Naam), @Html.DisplayFor(modelItem => item.Prijs)</option>    
     } 
    </select> 
    <input type="submit" value="Voeg Toe!" name="Add" /> 
} 

내가 형태의 포스트 데이터를 잡으려고하는 기능을 추가 ... 내 데이터베이스에서 제품 항목의 목록을 반환합니다. 이렇게 ..

[HttpPost] 
public ActionResult Index(int product = 0) { 
       var result = (from Product in db.Products 
           orderby Product.Id ascending 
           select Product); 
       System.Diagnostics.Debug.WriteLine("wrong function called!"); 
       return View(result.ToList()); 
      } 

색인 페이지를로드하려고 할 때 볼 수 있듯이 매우 기본적인 것입니다. 정상적인 것 대신 '과부하 된 httppost Index()'를 호출합니다. 아무 것도 게시되지 않을 때 HTTPPOST 메소드를 호출하는 이유는 무엇입니까?

+0

후 작업 부하를? –

+0

페이지로드시 잘못된 메소드가 호출되었습니다. 무슨 일이 일어날 지 모르는 어떤 생각? –

+0

특히 폼의'id '가 필요하지 않다면,'@using (Html.BeginForm)) {}'코드를 사용하면 자동으로 같은 컨트롤러/액션으로 포스트 할 수 있습니다. 예 :/Stap1/Index는 기본적으로/Stap1/Index에 다시 게시됩니다. –

답변

2

코드를 검사했는데 올바른 동작입니다. . 그래서

@using (Html.BeginForm("Index", "Stap1", FormMethod.Post, new { id = "form1" })) 
{ 
    <input type="submit" value="Start!" name="start" /> 
} 

당신은 실제로 Stap1Controlle에 게시하는 다음 인덱스보기를 렌더링하는 HomeController보기에

나는이 코드 조각을 발견했습니다 r 조치 색인.
통화 할 경우 (HttpGet)이 같은해야 올리기없이 인덱스 : 양식을 게시하지 않고

@Html.ActionLink("Start!", "Index", "Stap1") 
+0

당신 각하, 끝내 주네. Thx 한 묶음, 이전 페이지에서 호출되는 것에 대해 생각해 본 적이 없으며 indexController에서 해당 양식을 작성하여 잘못된 페이지 연결을 수행 한 것처럼 보입니다. Thx 한 덩어리! –

+0

문제 없습니다. 다행히 도와 줬어 ;-) – LeftyX