从Controller作为内容或JavaScriptResult返回JavaScript - javascript

如果我从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…