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