从asp.net MVC中的控制器创建视图

时间:2016-06-16 09:00:14

标签: asp.net-mvc

我正在尝试使用Asp.Net MVC创建新视图。我的视图已成功创建以及我的控制器中的相应更改,但

  

它显示404错误,因为视图未包含在项目中。

包括之后如果我正在尝试运行此功能并点击url/controller/Action它的工作正常。

我的代码如下所示,用于在控制器中创建视图和添加操作

//我的主要目标是动态创建新页面

[HttpPost]
public ActionResult Index(Content model)
{
    var fileName = model.Name; // validate to check the same name don't exist.
    if (!System.IO.File.Exists(fileName))
    {
        System.IO.File.Create(Server.MapPath("~/Views/Custom/"+fileName+".cshtml"));
    }
    //start Append data in custom controller
    var lines = System.IO.File.ReadAllLines(Server.MapPath("~/Controllers/CustomController.cs"));
    System.IO.File.WriteAllLines((Server.MapPath("~/Controllers/CustomController.cs")), lines.Take(lines.Length - 2).ToArray());
    //start Append data in custom controller
    //System.IO.File.WriteAllLines((Server.MapPath("~/Controllers/CustomController.cs")), "public ActionResult'" + fileName + "'(){");
    string appendData = "public ActionResult "+ fileName+ "() \n { \n";
    appendData += "return View();";
    appendData += " \n } \n } \n }";
    System.IO.File.AppendAllText((Server.MapPath("~/Controllers/CustomController.cs")), appendData);
    objcontext.objContent.Add(model);
    objcontext.SaveChanges();
    ModelState.Clear();
    return View();
}

请帮助我如何动态地包含文件,我不需要手动包含。

1 个答案:

答案 0 :(得分:0)

您可以通过在执行期间加载程序集来实现动态控制器。但是编写一个cs类,它将无法工作。

看看下面的方法 http://www.strathweb.com/2012/06/using-controllers-from-an-external-assembly-in-asp-net-web-api/