Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@Action()从JQuery返回null_Jquery_Asp.net Mvc_Url.action - Fatal编程技术网

@Action()从JQuery返回null

@Action()从JQuery返回null,jquery,asp.net-mvc,url.action,Jquery,Asp.net Mvc,Url.action,我想动态创建我的url,而不是在JQuery中硬编码。我尝试了几种方法(显示在代码片段的警报框中),但url的地址部分始终为空。我只在一个用于测试的警报框中获取所需的参数部分。另外,在我的项目中,我有一个控制器区域。因此,这一点也必须明确。最后一个alertbox返回我在尝试创建url时获得的最佳结果。请查看我的代码,并告诉我为什么无法正确获取url。如果你需要更多的细节,请告诉我。非常感谢。 注意:如果我在$.post()中硬编码url,它在localhost中可以正常工作。但当部署到开发环境

我想动态创建我的url,而不是在JQuery中硬编码。我尝试了几种方法(显示在代码片段的警报框中),但url的地址部分始终为空。我只在一个用于测试的警报框中获取所需的参数部分。另外,在我的项目中,我有一个控制器区域。因此,这一点也必须明确。最后一个alertbox返回我在尝试创建url时获得的最佳结果。请查看我的代码,并告诉我为什么无法正确获取url。如果你需要更多的细节,请告诉我。非常感谢。 注意:如果我在$.post()中硬编码url,它在localhost中可以正常工作。但当部署到开发环境时,它会中断。这就是为什么必须动态创建url

这是我与此部分相关的html代码

     <td>
         <a href="#" alt="Set Private" id="publicImage@(photo.ID)" data-photoid="@photo.ID" class="view @(photo.IsPublic ? "" : "hide")" title="Set this photo to not public.">Public</a>
         <a href="#" alt="Set Public" id="privateImage@(photo.ID)" data-photoid="@photo.ID" class="noView @(photo.IsPublic ? "hide" : "")" title="Set this photo to public.">Private</a>
      </td>
@Url.Action(“Status”,“Photos”,new{Area=“Account”})
返回一个字符串

所以,你需要引用双引号或单引号。比如说,


Hi只是一个建议,因为您正在变量
var url=@url.Action(“Status”,“Photos”,new{Area=“Account”})中获取url只需使用断点检查您获得的值,如果该值不为null,则将其分配给警报,如下所示:

alert(url);
还有一件事我想说的是

根据您的说明:如果我在$.post()中硬编码url,那么它在localhost中工作得很好。但当部署到开发环境时,它会中断。这就是为什么必须动态创建url

对于这个便笺问题,你可以在url上加上双点
。/status/photos
,我遇到了这个问题,就这样解决了

有用链接:

谢谢


Karthik

您应该在javascript代码中使用带单引号的ActionLink,如下面的“@Url.Action”(“Status”,“Photos”,new{Area=“Account”})”我尝试了这些,但仍然得到了Emply字符串。警报('@Url.Action(“Status”,“Photos”,new{Area=“Account”}'))警报('@Html.Raw(@Url.Action(“Status”,“Photos”,new{Area=“Account”})));开发人员工具显示的值如下所示。警报(“”)警报(“”);似乎您有路由问题。能否删除
[Route(“{id}/status/{status}”)]
并重试?然后在正文中发布数据,而不是Url。谢谢大家。这是一个路由问题。当我在controller方法上方添加[Route(“status”)]时,我得到了正确的url,而不是null。很好,很享受……)
    [HttpPost]
    [Route("{id}/status/{status}")]
    public virtual ActionResult Status(int id, bool status)
    {
        _photosClient.SetPublicStatus(id, status);
        return RedirectToAction(MVC.Account.Photos.Index());
    }
var url = "@Url.Action("Status", "Photos", new { Area = "Account" })";
alert(url);