2017-06-08 54 views
1

在將Vanilla MVC項目遷移到Vanilla Umbraco項目中時,我遇到了一些問題。其中之一是查詢參數,並將它們傳輸到我的索引。ActionResult中的參數

舊的ActionResult從工作MVC項目:

public ActionResult Index(int value1, int value2, bool value3 = false) 
{...} 

新的ActionResult,在香草一把umbraco項目

public override ActionResult Index(RenderModel model) 
{...} 

工作,但我需要的參數,從原來的項目(從查詢字符串來)。 我試圖簡單地增加他們:

public override ActionResult Index(RenderModel model, int value1, int value2, bool value3 = false) 
{...} 

但是當我做了後者,我得到的錯誤'Controller.Index(RenderModel, int, int, bool): no suitable method found to override'

我失去了什麼?

回答

0

您無法將這些值作爲參數傳遞。你應該從查詢字符串中提取它們。

public override ActionResult Index(RenderModel model) 
{ 
    var value1 = Request["value1"]; 
    var value2 = Request["value2"]; 
    var value3 = Request["value3"]; 
    ... 
} 
+0

這是爲什麼? (當它在vanilla MVC項目中工作時) – brother

+0

這是因爲當你在umbraco中有DocType控制器時,它的行爲與常規mvc控制器不同。 –

0

這個錯誤意味着並不是所有的參數都是按照它們應該加載的。只要讓它們都接受null作爲價值,並檢查你在通話過程中得到了什麼。

public override ActionResult Index(RenderModel model, int? value1, int? value2, bool value3 = false) 
{...} 
相關問題