2014-09-24 3 views
1

편집 : 그래서 내가 속성으로 TweetText 선회 하여이 문제를 해결했습니다. 여전히 남아있는 질문은 무엇입니까? 무엇이 바뀌어 이제 막 시작 되었습니까? 낸시에서 모델 바인딩을 사용하면 작동하지 않습니다. 계속 빈 문자열을 얻을

내가 쓰고 있어요 응용 프로그램의 일부입니다 :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Nancy; 
using Nancy.Hosting.Self; 
using Nancy.ModelBinding; 
namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (var host = new NancyHost(new Uri("http://localhost:8080"))) 
      { 
       host.Start(); 
       Console.ReadLine(); 
      } 
     } 
    } 

    public class MyModule : NancyModule 
    { 
     public static List<Tweet> Tweets = new List<Tweet>(); 

     public MyModule() 
     { 
      Get["/add"] = param => 
      { 
       return View["add.html"]; 
      }; 

      Post["/add"] = param => 
      { 
       var model = this.Bind<TweetModel>(); 
       Tweets.Add(new Tweet(model.TweetText)); 
       return this.Response.AsRedirect("/"); 
      }; 
     } 
    } 

    public class Tweet 
    { 
     public int id; 
     public string TweetText; 
     public DateTime date; 

     public Tweet(string tweet) 
     { 
      this.TweetText = tweet; 
      this.date = DateTime.Now; 
     } 
    } 

    [Serializable] 
    public class TweetModel { 
     public string TweetText; 
    } 
} 

을 여기 add.html입니다 :

<html> 
<head> 
<title> 
    Title 
</title> 
</head> 
<body> 
<form method="post" action="/add"> 
<input type = "text" name = "TweetText" /> 
<input type = "submit" value = "submit" /> 
</form> 
</body> 
</html> 

여기서 문제는 상관없이 내가 무엇을하려고 즉, 모델 TweetText 텍스트 상자의 텍스트로 채워지지 않고 대신 빈 문자열로 채 웁니다. 나는 심지어 아무 쓸모가 this.Request.Forms["TweetText"] 시도했습니다. 제가 읽은 거의 모든 온라인 자원은 그것이 "효과가있다"는 것을 암시하는 것처럼 보입니다. 이것은 나를 위해 사실이 아니었다. 나는 더 많은 정보를 제공하고 싶지만 무엇이 잘못 될지 알 수는 없다. 응용 프로그램은 들어오는 요청을 기록하지 않으며 오류 메시지도 제공하지 않습니다. 솔루션에 도달하는 방법에 대한 모든 조언을 주시면 감사하겠습니다!

답변

2

Nancy의 v 1.0에서 수정 된 알려진 문제입니다. 그러나 현재 Nancy 모델 바인딩은 속성에서만 작동합니다.