2012-12-03 67 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

相关问题