2014-06-14 2 views
2

을 렌더링하는 데 실패 @Each, 나는이 핸들러는 다음과 추천했습니다 :슈퍼 간단한보기 엔진 : 책 만들기 게시 요청을 처리하기 위해

Post ["/edit"] = parameters => { 
      var book = this.Bind<Book>(); 
      book.Id = new ObjectId(this.Request.Form["Id"]); 
      if(book.Id == null){ 
       return Response.AsRedirect("/books"); 
      } 
      var result = this.Validate(book); 
      if(result.IsValid){ 
       bookRepository.Update(book); 
       return Response.AsRedirect("/books"); 
      }else{ 
       dynamic model = new DynamicDictionary(); 
       model.Book = book; 

       var errors = new List<string>(); 
       foreach(var key in result.Errors.Keys){ 
        foreach(var value in result.Errors[key]){ 
         errors.Add(string.Format("{0} - {1}", key, value)); 
        } 
       } 

       model.ErrorMessages = errors; 
       return View ["book_edit.html", model]; 
      } 
     }; 

그리고 book_edit.html :

<html> 
<head> 
    <title>Edit book</title> 
</head> 
<body> 
    <h2>Edit book</h2> 
    <p> 
     <a href="/books">Book listing</a> 
    </p> 
    <h4>Validation Errors</h4> 
    @Partial['book_edit_error.html', Model.ErrorMessages]; 
    <ul style="color:red"> 
     @Each.ErrorMessages 
      <li>@Current</li> 
     @EndEach 
    </ul> 
    <form method="POST" action="/books/edit"> 
     <table> 
      <tr> 
       <td>Name: </td> 
       <td> 
        <input type="text" name="Name" value="@Model.Book.Name"/> 
        <input type="hidden" name="Id" value="@Model.Book.Id"/> 
       </td> 
      </tr> 
      <tr> 
       <td>Author: </td> 
       <td><input type="text" name="Author" value="@Model.Book.Author"/></td> 
      </tr> 
      <tr> 
       <td>Description: </td> 
       <td><input type="text" name="Description" value="@Model.Book.Description"/></td> 
      </tr> 
      <tr> 
       <td><input type="submit" value="Save"/></td> 
      </tr> 
     </table>  
    </form> 
</body> 

그리고 @Each 문이 예상대로 작동했습니다. enter image description here

여러 번 시도했지만, @Partial을 사용하려고했을 때에도 작동하지 않았습니다. 목록 모델 @Each 사용하는 경우

는하지만 (안 @ Each.Properties, 그것은했다.

답변

0

어쩌면 DynamicDictionary

dynamic model = new DynamicDictionary(); 

변화 ExpandoObject

dynamic model = new ExpandoObject(); 

시도 일, 행운을 빌어 요.

관련 문제