2016-08-28 4 views
-1

중복 질문과 긴 질문 일 수 있습니다. 그러나 나는 나의 해결책을 얻지 못했고 문제는 전문가에게 쉽다.MVC 5의 뷰에서 컨트롤러로 ID 전달하기

HomeController에는 Index(), Customer()Item()이라는 3 개의 ActionResult()가 있습니다.

Model Class:

namespace Customer.Models 
{ 
    public class CustomerInfo 
    { 
     public int CustomerId { get; set; } 
     public string CustomerName { get; set; } 
     public string ItemName { get; set; } 
    } 
} 

Customer()에 대해 이야기하고있다. Customer()에서 목록은 CustomerView 페이지로 돌아갑니다.

HomeController:

List<CustomerInfo> customers = new List<CustomerInfo>(); 
public ActionResult Customer() 
{ 
     customers.Add(new CustomerInfo { CustomerName= "Nafeeur"}); 
     customers.Add(new CustomerInfo { CustomerName = "Rasel" }); 
     customers.Add(new CustomerInfo { CustomerName = "Fagun" }); 
     return View(customers); 
} 

CustomerView 페이지 :

@model IEnumerable<Customer.Models.CustomerInfo> 
@using Customer.Models; 

@{ 
    ViewBag.Title = "Customers"; 
} 
<h2>@ViewBag.Title.</h2> 

<h1>Customer Name</h1> 

<ul> 
    @foreach(CustomerInfo customer in @Model) 
    { 
     <li> 
      @Html.ActionLink(customer.CustomerName, "Index", "Customer", new {id = customer.CustomerId}) 
     </li> 
    } 
</ul> 

나는라는 이름의 또 다른 컨트롤러 페이지로 ID를 전달하고있어이보기 페이지에서 CustomerController

코드 :

namespace Customer.Controllers 
{ 
    public class CustomerController : Controller 
    { 
     // GET: Customer 
     public ActionResult Index(int id) 
     { 
      var list = new List<CustomerInfo>(); 
      var item = list.Find(x => x.GetId(id)); 
      return View(item); 
     } 
    } 
} 

CustomerController의보기 페이지 : 나는 그것이 작동하지 않는 모든 고객을 클릭하면

@model Customer.Models.CustomerInfo 

@{ 
    ViewBag.Title = "Customer Index"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Customer Index</h2> 


<h3>@Model.CustomerId</h3> 
<h3>@Model.CustomerName</h3> 
<h3>@Model.ItemName</h3> 

내 문제가있다.

오류 : enter image description here

+1

그리고 귀하의 질문은 ...? –

+0

질문이 추가되었습니다. –

+2

'CustomerId'에 대한 어떤 값도 설정하지 않았습니다 -'Index'() 메소드의'id' 값은'0'이 될 것이므로 모두'0' ('int'의 기본값)이됩니다 –

답변

0

그것은 (적어도 이유 오류를 얻고있다) 날 것으로 보인다 그냥 클래스 CustomerInfo 당신 안에() GetId를 구현해야한다는 것입니다. 내가 완전히 벗어나지 않는 한, 이것은 당신이 방금 사용할 수있는 일종의 함축적 인 방법이 아닙니다. 당신은 그것을 써야합니다. 예를 들어 인 경우은 CustomerInfo 클래스에 포함될 수 있습니다.

public int GetId() 
{ 
    return this.CustomerId; 
} 

그러나 Stephen은 의견에서 지적했듯이 실제로 고객의 ID를 설정해야합니다. 데이터베이스를 사용하고 있지 않다면 (주석에없는 것처럼 보임) 데모 응용 프로그램을 만드는 중일뿐입니다. 코드에 다음과 같은 각각의 ID를 설정하는 몇 가지 메소드를 작성해야합니다. 귀하의 목록에있는 고객 (예 : Nafeer, Rasel, Fagun).

희망이 도움이됩니다.

관련 문제