2012-12-03 69 views
0

我想使用一個基本的dll文件來計算一個塊的體積,並使用asp.net mvc來創建頁面。錯誤:不能隱式地將類型'MyBlock.BlockClass'轉換爲'System.Web.Mvc.ActionResult'

我有一個窗體,需要三個輸入,並在控制器頁面有這個代碼。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MvcApplication1.Controllers 
{ 
    public class blockController : Controller 
    { 
     // 
     // GET: /block/ 

     public ActionResult Index() 
     { 
      return View(); 
     } 

     [HttpPost] 
     public ActionResult Index(BlockModel model) 
     { 
      if (ModelState.IsValid) 
      { 
       MyBlock.BlockClass newVol = new MyBlock.BlockClass(model.Length, model.Width, model.Height); 
       return newVol; 
      } 
     } 

    } 
} 

塊的dll取三個值的長度,寬度及高度,當我嘗試運行它,我得到這個錯誤

Error 6 Cannot implicitly convert type 'MyBlock.BlockClass' to 'System.Web.Mvc.ActionResult' c:\users\ryan\documents\visual studio 2012\Projects\dad\MvcApplication1\MvcApplication1\Controllers\blockController.cs 25 24 MvcApplication1 

其他唯一的代碼是從我的視圖頁面,可以張貼同樣,如果它會幫助解決問題,因爲我試圖顯示BlockClass的結果。

+3

你爲什麼不回來了'View'? –

回答

1

應該是這樣的

[HttpPost] 
public ActionResult Index(BlockModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     MyBlock.BlockClass newVol = new MyBlock.BlockClass(model.Length, model.Width, model.Height); 

     return View("MyBlockView", newVol); // The view you want to pass the model too 
    } 
} 
+0

謝謝你的工作,但現在我該如何在視圖中使用該變量? – Ryan

+1

當你把它放在視圖的頂部時:'@model MyBlock.BlockClass',你可以在你的視圖中使用這些屬性:'@ Model.Length'。第一條語句告訴MVC,您將一個MyBlock.BlockClass類型的變量傳遞給視圖,因此MVC知道當您在視圖中稍後鍵入@Model時,它是什麼類型(請注意'm'的模型:在第一個語句(定義模型)中,它是小寫的m,使用它時,它是大寫M. – Michel

相關問題