在Nancy中使用模型绑定不起作用。继续变空字符串

时间:2014-09-24 15:09:46

标签: c# web nancy

编辑:所以我通过将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;。对我来说情况并非如此。我很乐意提供更多信息,但我根本无法弄清楚出了什么问题。应用程序不记录传入的请求,也不提供任何错误消息。任何关于如何达成解决方案的指示都将不胜感激!

1 个答案:

答案 0 :(得分:2)

这是一个已知的问题,正在为Nancy的v 1.0修复。但目前Nancy模型绑定仅适用于属性。