MVC4 - 如何从剃刀视图调用控制器方法

时间:2014-03-05 21:14:14

标签: c# asp.net-mvc asp.net-mvc-4 razor

我是MVC的新手,有人可以帮助我并解释如何从视图中调用控制器方法。

我有HomeController,在其中我有方法ShowFileContent()。

[HttpPost]
public ActionResult ShowFileContent()
{
    string filepath = Server.MapPath("\\Files\\Columns.txt");    
    try
    {
        var lines = System.IO.File.ReadAllLines(filepath);

        foreach (var line in lines)
        {
            ViewBag.FileContent += line + "\n";

        }
    }
    catch (Exception exc)
    {
        ViewBag.FileContent = "File not found";
    }

    return View();
} 

内部视图我试图用下面的代码调用此方法,但它不起作用。

@using (Html.BeginForm("ShowFileContent", "Home"))
{
    <input type="submit" value="Show File" style='width:300px'/>        
}
<h2>@Html.Raw(ViewBag.FileContent.Replace("\n", "</br>"))</h2>

我收到错误:找不到视图'ShowFileContent'或其主人,或者没有视图引擎支持搜索到的位置。

我做错了什么,从剃刀视角调用方法的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

您可以使用内置的Action方法从View调用操作。

@Html.Action("actionName", "ControllerName")

答案 1 :(得分:3)

听起来像是打破了你的

 return View();

如果您不告诉它去哪里,它会认为该视图与您的操作相同。

所以请尝试

return View("Name of your view");