我正在尝试使用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();
}
请帮助我如何动态地包含文件,我不需要手动包含。
答案 0 :(得分:0)
您可以通过在执行期间加载程序集来实现动态控制器。但是编写一个cs类,它将无法工作。
看看下面的方法 http://www.strathweb.com/2012/06/using-controllers-from-an-external-assembly-in-asp-net-web-api/