基本上我有一个问题,我想在多个控制器中进行一个默认操作,并使用我的自定义URL的多个可选参数,如下所示:
www.mydomain.com/{controller name}/{v1}/{v2}/{v3}/{v4}
并且也不希望在url中使用动作名称.我在routeconfig.cs中有这个路由
routes.MapRoute(
name: "Blog",
url: "{controller}/{v1}/{v2}/{v3}/{v4}",
defaults: new
{
controller = "Blog",
action = "searchBlog",
v1 = UrlParameter.Optional,
v2 = UrlParameter.Optional,
v3 = UrlParameter.Optional,
v4 = UrlParameter.Optional
});
routes.MapRoute(
name: "Forum",
url: "{controller}/{v1}/{v2}/{v3}/{v4}",
defaults: new
{
controller = "Forum",
action = "searchForum",
v1 = UrlParameter.Optional,
v2 = UrlParameter.Optional,
v3 = UrlParameter.Optional,
v4 = UrlParameter.Optional
});
Run Code Online (Sandbox Code Playgroud)
行动 BlogController
public ActionResult searchBlog(string v1=null,string v2 = null, string v3 = null, string v4 = null)
{
// use optional parameters …Run Code Online (Sandbox Code Playgroud) 任何机构都可以告诉我在页面刷新后多次SQL依赖OnChange事件调用背后的原因是什么.这背后可能的原因是什么?在页面刷新之前,数据库中每次更改只调用一次.
我在_Layout.cshtml页面上调用了脚本,而我的Index.cshtml页面也有部分视图.因此,在页面加载时,SignalR脚本在局部视图上工作得很好,在页面结束时,我创建另一个ajax请求并加载部分视图,其中填充了另一个数据并嵌入已经显示的数据中,然后SignalR不能在新嵌入的数据库上工作记录.
这是我的索引页面代码:
<div class="col-md-6">
<div class="profile-body">
<div class="row infinite-scroll">
@Html.Partial("_AlbumRow", Model)
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的部分查看代码:
@model IEnumerable<SmartKids.Lib.Core.ViewModels.FileMediaAlbumsVM>
@foreach (var item in Model)
{
<div class="widget">
<div class="block rounded">
<img src="@Url.Content(item.ImageUrl)" alt="@item.Title">
<input type="button" data-image-id="@item.imageId" class="btn btn-sm btn-default">Like</input>
</div>
</div>
}
Run Code Online (Sandbox Code Playgroud)
请帮助我如何解决这个问题,在发出ajax请求后,我无法使这些SignalR工作.这里还有更多的说法,当我把SignalR脚本放在PartialView上工作,但它也很糟糕,在每个ajax请求上,还有一个SignalR加载在页面上,当我点击LIke按钮时,它会对它后面的函数进行多次调用.请帮助我解决这个问题,我从1周开始就陷入困境.
这是signalR代码:
$(".btn.btn-sm.btn-default").on("click", function () {
var imageId = $(this).attr("data-image-id");
albumClient.server.like(imageId);
});
Run Code Online (Sandbox Code Playgroud)