编辑:所以我通过将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"]
无济于事。我读过的几乎所有在线资源似乎都暗示它只是工作&#34;。对我来说情况并非如此。我很乐意提供更多信息,但我根本无法弄清楚出了什么问题。应用程序不记录传入的请求,也不提供任何错误消息。任何关于如何达成解决方案的指示都将不胜感激!
答案 0 :(得分:2)
这是一个已知的问题,正在为Nancy的v 1.0修复。但目前Nancy模型绑定仅适用于属性。