如何从Javascript调用URL操作?

如何从Javascript调用URL操作?,javascript,c#,asp.net,asp.net-mvc,razor,Javascript,C#,Asp.net,Asp.net Mvc,Razor,我正在做: var url = '@Url.Action("Attachments", "Transactions")'; url += '/?id=' + 3201; $("#attachments").load(url); 然而,在加载时,它什么也不做。我错过什么了吗 我基本上想称之为类似于: @{Html.RenderAction("Attachments", "Transactions", new { id = 3301 });} 我在控制台上遇到以下错误: http://serve

我正在做:

var url = '@Url.Action("Attachments", "Transactions")';
url += '/?id=' + 3201;
$("#attachments").load(url);
然而,在加载时,它什么也不做。我错过什么了吗

我基本上想称之为类似于:

@{Html.RenderAction("Attachments", "Transactions", new { id = 3301 });}
我在控制台上遇到以下错误:

http://server:54137/Transactions/@Url.Action(%22Attachments%22,
您需要使用下面的检查

var url = "@Html.Raw(Url.Action("Attachments", "Transactions"))";
url += '/?id=' + 3201;
$("#attachments").load(url);
您需要使用下面的检查

var url = "@Html.Raw(Url.Action("Attachments", "Transactions"))";
url += '/?id=' + 3201;
$("#attachments").load(url);

您必须使用不会解析razor语法的外部JavaScript文件,因此控制台中的
@Url.Action(%22附件%22.
出现错误

您有两个选择:

  • 创建JavaScript函数并传入url:

    函数加载url(url){
    $(“#附件”).load(url);
    }

  • 然后在razor中,在脚本标记中调用它:

    loadUrl(@Url.Action("Attachments", "Transactions", new { id = @Model.Id })
    
  • 将url作为数据添加到html元素中,并使用
    data
    方法从JavaScript中读取它
  • 在razor标记中添加以下内容:

    <button data-url="@Url.Action("Attachments", "Transactions", new { id = @Model.Id })" />
    

    我更喜欢第二个选项。

    您必须使用一个外部JavaScript文件,该文件不会解析您的razor语法,因此控制台中的
    @Url.Action(%22附件%22.
    出现错误

    您有两个选择:

  • 创建JavaScript函数并传入url:

    函数加载url(url){
    $(“#附件”).load(url);
    }

  • 然后在razor中,在脚本标记中调用它:

    loadUrl(@Url.Action("Attachments", "Transactions", new { id = @Model.Id })
    
  • 将url作为数据添加到html元素中,并使用
    data
    方法从JavaScript中读取它
  • 在razor标记中添加以下内容:

    <button data-url="@Url.Action("Attachments", "Transactions", new { id = @Model.Id })" />
    


    我更喜欢第二个选项。

    你想做什么?
    .load()
    -从服务器加载数据并将返回的HTML放入匹配的元素在
    console.log(url);
    语句紧跟在
    var url=…
    之后,检查它返回的内容。你的代码对我来说很好。我使用了
    console.log(url);
    并打印-
    /Transactions/Attachments/?id=3201
    。因此,请检查代码的其他部分。注意,它应该是
    url+='?id='+3201;
    (无正斜杠)您在哪里“执行”javascript?文件名是什么?它以.js结尾吗?您想做什么?
    .load()
    -从服务器加载数据并将返回的HTML放入匹配的元素在
    console.log(url);
    语句紧跟在
    var url=…
    之后,检查它返回的内容。您的代码对我来说运行良好。我使用了
    console.log(url);
    并打印-
    /Transactions/Attachments/?id=3201
    。因此,请检查代码的其他部分。注意,它应该是
    url+='?id='+3201;
    (无正斜杠)javascript在哪里?文件名是什么?它以.js结尾吗?您不需要使用
    Html.Raw()
    -
    '@url.Action(“附件”、“事务”);
    将返回
    “/Transactions/Attachments”
    您不需要使用
    Html.Raw()
    -
    ”@Url.Action(“附件”、“事务”);
    将返回
    “/Transactions/Attachments“
    由于某些原因,它似乎不起作用?当我尝试选项二时,我会遇到相同的错误。我已将数据值附加到选项选择列表,并且能够正确地获取url。然后当我尝试加载它时,它仍然会给我错误:get 404(未找到)@SamIAm您好,您需要确保从razor文件中调用
    @Url.Action
    ,即
    .cshtml
    ,否则它将无法解析。如果您从外部
    .js
    文件调用它,它将只将其视为javascript并解析为
    @Url.Action
    ,而不是操作的路径,即
    /transactions/attachments
    @hutchonoid我们如何在.js文件中使用它?嗨@Sebastian,是的,你可以。你有两个选项,创建一个以url为参数的函数,并通过
    loadThisUrls(@url.Action…)传递它
    解析路径或按原样将其捆绑并解析url(如上所示),而不传入路径。由于某些原因,它似乎不起作用?我在尝试选项二时会遇到相同的错误。我已将数据值附加到选项选择列表中,并且能够正确导出url。然后,当我尝试加载它时,它仍然会给我错误信息或:获取404(未找到)@SamIAm您好,您需要确保从razor文件中调用
    @Url.Action
    ,即
    .cshtml
    ,否则它将无法解析。如果您从外部
    .js
    文件调用它,它将只将其视为javascript并解析为
    @Url.Action
    ,而不是操作的路径,即
    /transactions/attachments
    @hutchonoid我们如何在.js文件中使用它?嗨@Sebastian,是的,你可以。你有两个选项,创建一个以url为参数的函数,并通过
    loadThisUrls(@url.Action…)传递它
    解析路径或按原样将其捆绑并解析url,如上图所示,而无需传入。