2016-09-19 35 views
5

我儘量讓一類NancyModules和URL,但方法「GET」 GET字符串告訴:無法將[]的索引應用於'method group'類型的表達式t SinglePageApp1。獲得[「/」]南希

「錯誤CS0021不能申請用[]索引到類型的表達式 '方法組' ......」

我的代碼:

using System; using System.Collections.Generic; using System.Linq; 
using System.Web; using Nancy; using System.Text; 

namespace SinglePageApp1 { 
    public class BloodPresureNancy : NancyModule 
    { 
     public BloodPresureNancy() 
     { 

      // Get dasn't work 
      Get["/"] = _ => "Heloooo"; 
     } 
    } 
} 

enter image description here

我添加引用:Nancy,Nancy.Hosting.asp,它不起作用。

+0

'Get'是一種方法。你把它當作字典對待。你想用'Get'做什麼?該代碼意味着什麼? –

+0

謝謝,我在互聯網上找到的演示代碼之後有同樣的問題。嘗試瞭解其他人的代碼有時是一個挑戰。 :) –

回答

7

你目前使用的是哪個版本的Nancy?該語法應該可用於1.x版本。不過,我認爲Nancy最近對其即將發佈的2.0版本註冊路線進行了改動。如果你看看他們在github https://github.com/NancyFx/Nancy/blob/master/samples/Nancy.Demo.Hosting.Self/TestModule.cs上的樣本。你會發現,你不再像上面那樣爲不同的動詞編制索引,而是像引用Method一樣引用它們。嘗試改變你的代碼爲

 
    Get("/", _ => { 
     //do work here 
    }); 
,而不是看看是否適合你。

1

雖然這是最有可能沒有這樣做的正確的方式,它的工作:

Get("/test/{category}", parameters => { return "My category is " + (Nancy.DynamicDictionaryValue)parameters.category; }); 

http://localhost/test/hello將返回「我的類別爲你好」

1

https://github.com/NancyFx/Nancy/pull/2441

具體:

該wiki不會更新爲2.0包裝es來自預發行,直到那時所有的改變都被認爲是未決的=)

即,神奇的自定義索引器語法,允許你這樣做:

Get["/"] = ... 

南希2.x版本已經消失。

但是,全部該文檔目前仍指當前(即1.4.x版本);所以...

tldr;這個語法在南希的新版本中已經過時了。如果您使用新版本的Nancy,請使用Get(...)Post(...)等。

相關問題