2012-12-04 63 views
-1

我試圖創建一個控制器,從飛輪海在C#MVC3溫度轉換爲攝氏度。華氏攝氏轉換器C#錯誤

public ActionResult FahrenheitToCelsius(Double? fahrenheit, Double celsius) 
{ 
    if (fahrenheit.HasValue) 
    { 
    if (fahrenheit <= -461) 
     return View(); 
    else 
    { 
     celsius = (fahrenheit.Value - 32) * 5/9; 
     return View("FahrenheitToCelsius", celsius); 
    } 
    } 
    else 
    return RedirectToAction("Index", "Home"); 
} 

但是我在測試方法中得到的錯誤消息:

無重載方法 'FahrenheitToCelsius' 拍攝1個參數。

我敢肯定這件事情簡單,我忽視了。

[TestMethod] 
public void FahrenheitToCelsiusReturnsAViewResultWhenInputDataIsValid() 
{ 
    //Arrange 
    var controller = new FahrenheitConverterController(); 
    Double fahrenheit = 77d; 

    //Act 
    var result = controller.FahrenheitToCelsius(fahrenheit) as ViewResult; 

    //Assert 
    Assert.IsInstanceOfType(result, typeof(ViewResult)); 
} 
+2

見'FahrenheitToCelsius(?雙華氏,攝氏雙) '你帶兩個參數 –

+0

您的控制器動作有兩個參數:FahrenheitToCelsius(?雙華氏,攝氏雙人間) – kabaros

+0

你'FahrenheitToCelsius'方法定義兩個參數,你只用一個調用它。我想你想將'celsius'參數改爲一個局部變量。 –

回答

4

FahrenheitToCelsius功能既需要華氏參數和參數攝氏度,而它應該只需要一個華氏參數。

將其更改爲

public ActionResult FahrenheitToCelsius(Double? fahrenheit) 
{ 

    if (fahrenheit.HasValue) 
    { 
     if (fahrenheit <= -461) 
     { 
      return View(); 
     } 
     else 
     { 
      Double celsius = (fahrenheit.Value - 32) * 5/9; 
      return View("FahrenheitToCelsius", celsius); 
     } 

    } 
    else 
    { 
     return RedirectToAction("Index", "Home"); 
    } 
} 
1

FahrenheitToCelsius(Double? fahrenheit, Double celsius)你的方法簽名有兩個參數,但是在存根你只是一個路過:

controller.FahrenheitToCelsius(fahrenheit)