我正在尝试以下代码从webApi显示html页面:
[AcceptVerbs("GET")]
[AllowAnonymous]
[Route("ManageAccount/{id}")]
public HttpResponseMessage ManageAccount(string id)
{
if (! String.IsNullOrEmpty(id))
{
var path = "C:/Users/user/Project/" + id + ".html";
var response = new HttpResponseMessage();
response.Content = new StringContent(File.ReadAllText(path));
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}
var path2 = "C:/Users/user/Project/Login.html";
var response2 = new HttpResponseMessage();
response2.Content = new StringContent(File.ReadAllText(path2));
response2.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response2;
// return Redirect("Login.html");
}
字符串
我把ContentType设置为text/html来读取html页面,但是这个页面有脚本,现在所有的脚本都读取为text/html!
请问有什么建议吗?
我该如何解决此问题?
更新:
我得到了,如果脚本加载在服务器上它的工作!
我不知道是否有一种方法来加载我的脚本在服务器上,我不知道如果这个好主意!
对不起,我是这个领域的新手:)谢谢
2条答案
按热度按时间cczfrluj1#
File.ReadAllText
只是一种从文件中阅读文本的方法StringContent
只是存储要添加到响应正文的文本的结构。这两个组件都不包括服务器端脚本编译器。
我认为这是一个MVC架构的问题!你可能知道ASP.NET MVC提供了两种典型的控制器类型:
Http.ApiController
和Mvc.Controller
。简单地理解,
ApiController
通常只用于处理数据,它不具备用于处理Razor C#的功能。请使用Mvc.Controller
来执行此操作。xurqigkl2#
Web API 2控制器中的方法可能返回不同的类型。
如果需要,我们可以创建自己的类:
字符串
让我们尝试用途:
型