如果我从MVC控制器中返回一些JavaScript,有什么区别?
内容
[HttpPost]
public ActionResult MyEndPoint([System.Web.Http.FromBody] string result)
{
string jsResponse = "<script>";
if(result == "SUCCESS")
{
jsResponse = "SubmitOrder();";
}
else
{
jsResponse = "alert('Problem processing your order, please try again')";
}
jsResponse += "</script>";
return Content(jsResponse);
}
JavaScriptResult
[HttpPost]
public ActionResult MyEndPoint([System.Web.Http.FromBody] string result)
{
string jsResponse = "<script>";
if(result == "SUCCESS")
{
jsResponse = "SubmitOrder();";
}
else
{
jsResponse = "alert('Problem processing your order, please try again')";
}
jsResponse += "</script>";
return JavaScript(jsResponse);
}
另外,从MVC控制器方法/调用返回JavaScript时,是否需要注意任何安全预防措施?
参考方案
例如,JavaScriptResult
以MIME类型返回响应,而MIME类型则是使用application/javascript
返回的默认text/html
。因此,Content()
不会执行您尝试执行的外观(执行JS)。浏览器不仅执行响应中发送的任何内容。由于JavaScriptResult
实际上是在发送HTML,因此浏览器可以呈现它,在这种情况下,将执行script标签中的脚本。我没有看到Content()
经常使用,但是在我经常使用的地方,它通常用于动态提供脚本。例如:
控制者
public ActionResult SomeAction() {
...
return JavaScript("script content");
}
视图
<script src="MyController/SomeAction">
关于安全性,您显然希望避免执行从用户传入的任何内容,无论是从请求正文,查询字符串等中执行的。我敢打赌,但是这有点设计问题,您会您的前端和后端,因此无论如何,最好最好谨慎使用。
ddl在服务器中未更新-asp.net - javascript我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……
单击选项卡链接时,请专注于每个引导选项卡中的First asp:textbox - javascript我是开发的新手,并开始开发简单的asp.net应用程序。我正在使用每个都有一些asp标签和文本框的bootstrap选项卡。单击该选项卡时,我要重点关注选项卡内容中的第一个文本框。我搜索了各种答案,但都是针对输入字段的(exp:输入type =“ text”)。找不到适用于ASP文本框的任何内容。任何帮助将不胜感激。谢谢 javascript参考方案 ASP…
Javascript-从当前网址中删除查询字符串 - javascript单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…
ASP.NET-如何更改JSON序列化的方式? - javascript我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …
ASP.NET MVC中应为DataTable返回哪种数据? - javascript我想为DataTable中的每个页面创建动态加载信息。我正在尝试遵循以下示例:https://www.datatables.net/manual/server-sidehttps://www.datatables.net/manual/data来自示例的代码:$('#example').DataTable( { serverSide: t…