小编joh*_* Gu的帖子

按我的json对象分组并获取每组的计数

我正在使用2个休息api服务.第一个将从名为"主要类别"的列表中获取项目如下: -

/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title
Run Code Online (Sandbox Code Playgroud)

它将返回以下json: -

{
    "d": {
        "results": [
            {                    
                "FileSystemObjectType": 0,
                "Id": 15,
                "ID": 15,
                "ContentTypeId": "0x010006DDBDD3BDC9914B92E911733F2A56E1",
                "Title": "A",
                "Modified": "2017-03-01T12:08:35Z",
                "Created": "2017-03-01T12:08:35Z",
                "AuthorId": 1,
                "EditorId": 1,
                "OData__UIVersionString": "1.0",
                "Attachments": false,
                "GUID": "c93d9db6-efd8-4b49-9024-f8cc30c0a48e"
            },
            {
                 "FileSystemObjectType": 0,
                "Id": 16,
                "ID": 16,
                "ContentTypeId": "0x010006DDBDD3BDC9914B92E911733F2A56E1",
                "Title": "B",
                "Modified": "2017-03-01T12:10:27Z",
                "Created": "2017-03-01T12:10:27Z",
                "AuthorId": 1,
                "EditorId": 1,
                "OData__UIVersionString": "1.0",
                "Attachments": false,
                "GUID": "a023853c-e967-4db8-8414-a7c390dcc09a"
            },
Run Code Online (Sandbox Code Playgroud)

我有另一个名为的列表Pages,其中每个页面链接到一个主类别项目.

/test/_api/web/lists/getbytitle('pages')/items??$select=Title,MainCategory&$filter=MainCategory eq
Run Code Online (Sandbox Code Playgroud)

这里是返回json: -

{
    "d": {
        "results": [
            {    
                "Title": "Home",
                "MainCategory": "A"
            }, …
Run Code Online (Sandbox Code Playgroud)

javascript rest jquery json

10
推荐指数
1
解决办法
3004
查看次数

在每个循环中使用DisplayFor

我有以下观点: -

@foreach(var info in Model.Firewall.FirewallCustomers.OrderBy(a=>a.CustomerName)){

<td>@Html.DisplayFor(info.CustomerVLAN.VLANID)</td>
}
Run Code Online (Sandbox Code Playgroud)

但我无法写下以下内容

@Html.DisplayFor(info.CustomerVLAN.VLANID)</td>
Run Code Online (Sandbox Code Playgroud)

我会收到以下错误: -

无法从用法中推断出方法'System.Web.Mvc.Html.DisplayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>)'的类型参数.尝试显式指定类型参数

那么有人可以建议,如何在我的foeach循环中使用DisplayFor?

谢谢

c# linq asp.net-mvc html-helper

9
推荐指数
1
解决办法
3326
查看次数

如何创建一个空的SelectList

我有folloiwng动作方法:

public JsonResult LoadSitesByCustomerName(string customername)
{
    var customerlist = repository.GetSDOrg(customername)
                                 .OrderBy(a => a.NAME)
                                 .ToList();
    var CustomerData;
    CustomerData = customerlist.Select(m => new SelectListItem()
    {
        Text = m.NAME,
        Value = m.NAME.ToString(),
    });
    return Json(CustomerData, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

但目前我收到以下错误var CustomerData;:

implicitly typed local variables must be initialized
Run Code Online (Sandbox Code Playgroud)

所以我不知道如何创建一个空的SelectList来将其分配给var变量?谢谢

c# linq asp.net asp.net-mvc

9
推荐指数
2
解决办法
1万
查看次数

当我尝试在我的asp.net mvc中导入我的存储过程时,选定的存储过程不返回任何列

我在我的SQL Server 2008 r2和asp.net mvc Web应用程序中有以下存储过程: -

USE [ITSERres]
GO
/****** Object:  StoredProcedure [dbo].[AdvanceSearchSP]    Script Date: 08/04/2014 16:21:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object:  StoredProcedure [dbo].[AdvanceSearch2]    Script Date: 07/18/2014 10:37:47 ******/


ALTER PROCEDURE [dbo].[AdvanceSearchSP]
        -- Add the parameters for the stored procedure here

        @SearchType nvarchar(10) = null,
        @CustomerID bigint = null,
        @StringCustomerID nvarchar(50) = null,
        @SiteID bigint = null,
        @StateID bigint = null,
        @PrimarycustomerOnly bit = false,
        @RoleID int = null,
        @TypeID int = null, …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework edmx asp.net-mvc-5

9
推荐指数
1
解决办法
1万
查看次数

Microsoft JScript运行时错误:无法获取属性"defaultView"的值:object为null或undefined

我的asp.net mvc里面有以下脚本: -

function deleteconfirmation() {

    jAlert('The Answer was deleted succsfully', 'Deletion Confirmation');
    $(this).fadeOut('slow', function () { $(this).remove(); });

}
Run Code Online (Sandbox Code Playgroud)

但是当它被执行时,它将返回以下错误"Microsoft JScript运行时错误:无法if(!(e=a.ownerDocument.defaultView))在jquery-1.6.2.min.js内部获取属性'defaultView'的值:对象为null或未定义" .提示: - 只有在使用IE时才会出现此错误,如果我使用的是chrome或firefox,则不会发生这种情况!那可能是什么导致了这个?BR

jquery asp.net-mvc-3

8
推荐指数
1
解决办法
1万
查看次数

SEC7115 :: visit和:链接样式只能根据颜色而不同.某些样式未应用于:已访问.

我已经运行了我的sharepoint网站nder IE F12开发人员工具,并且控制台在我的HTML开头提到了以下错误: -

SEC7115: :visited and :link styles can only differ by color. Some styles were not applied to :visited. 
Run Code Online (Sandbox Code Playgroud)

那么这个错误是什么?以及我如何解决它?谢谢

html sharepoint html5

8
推荐指数
1
解决办法
1万
查看次数

如何将System.Web.Configuration.WebConfigurationManager.AppSettings从String转换为INT

我在web.config文件中定义了以下内容: -

<add key="TechPageSize" value="20" />
Run Code Online (Sandbox Code Playgroud)

但我无法在我的分页参数中引用此值,如下所示: -

var servers = repository.AllFindServers(withOutSpace).OrderBy(a => a.Technology.Tag).ToPagedList(page, (Int32)System.Web.Configuration.WebConfigurationManager.AppSettings["TechPageSize"]);
Run Code Online (Sandbox Code Playgroud)

我将得到一个错误,它不能将String更改为INT.

不知道是什么问题?

c# asp.net-mvc

8
推荐指数
1
解决办法
1万
查看次数

带有Ajax.Beginform的RedirectToAction,意外结果

我有以下视图,其中包含一个Ajax.BeginForm: -

@using (Ajax.BeginForm("ChangeDevicesSwitch", "Switch", new AjaxOptions

{
    InsertionMode = InsertionMode.InsertBefore,
    UpdateTargetId = "result",
    LoadingElementId = "progress2",
    HttpMethod= "POST"
    ,
    OnSuccess = "createsuccess",
    OnFailure = "createfail"




}))
//code goes here
<p><img src="~/Content/Ajax-loader-bar.gif" class="loadingimage" id="progress2" /></p>
<div id ="result"></div>
Run Code Online (Sandbox Code Playgroud)

以及将从Ajax.Bginform调用的以下Action方法: -

public ActionResult ChangeDevicesSwitch(SwitchJoin s)

        {//code goes here
            try
            {
                var count = repository.changeDeviceSwitch(s.Switch.SwitchID, (Int32)s.GeneralSwitchTo, User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1));
                repository.Save();
                return RedirectToAction("Details", new { id = s.GeneralSwitchTo });

            }
            catch (Exception e)

            {
                return Json(new { IsSuccess = "custome", description = "Error …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc ajax.beginform razor asp.net-mvc-4

8
推荐指数
1
解决办法
6497
查看次数

如何防止Hangfire重复作业在连续执行30分钟后重新启动

我正在使用asp.net mvc-5 Web应用程序,我在使用Hangfire工具运行长时间运行的后台作业时遇到了问题.问题是如果作业执行超过30分钟,那么hangfire会自动启动另一个作业,所以我最终会同时运行两个类似的作业.

现在我有以下内容: -

  1. Asp.net mvc-5
  2. IIS-8
  3. Hangfire 1.4.6
  4. Windows服务器2012

现在我已经定义了一个每天17:00运行的篝火重复工作.后台作业主要扫描我们的网络中的服务器和虚拟机并更新数据库,定期作业将在完成执行后发送电子邮件.经常性工作在执行时间不到30分钟时效果很好.但是今天随着我们的系统的发展,经常性的工作在40分钟后完成,而不是像过去那样在22-25分钟之后完成.我收到了2封电子邮件,而不是一封电子邮件(电子邮件之间的时间约为30分钟).现在我手动重新运行这个工作,我注意到问题如下: -

"当定期作业达到30分钟连续执行时,定期作业的新实例将启动,因此我将有两个实例而不是同时运行的实例,这就是我收到2封电子邮件的原因."

现在,如果定期工作不到30分钟(例如29分钟),我将不会遇到任何问题,但如果重复执行的工作超过30分钟,那么由于某种原因或其他原因,将启动新工作.虽然当我在执行作业期间访问hangfire仪表板时,我发现只有一个活动作业,当我监视我的数据库时,我可以从sql profiler看到有两个作业访问数据库.这种情况发生在经常性工作开始30分钟后(在我们的案例中是17:30),这就是为什么我收到2封电子邮件,这意味着2个重复工作在后台运行而不是一个.

那么有人可以提出这方面的建议吗,如果目前的重复工作执行时间超过30分钟,我怎么能避免因自动启动新的定期工作而导致绞火?谢谢

asp.net iis background-process asp.net-mvc-5 hangfire

8
推荐指数
4
解决办法
7390
查看次数

Windows调度程序API与控制台应用程序Vs .net调度程序工具与asp.net mvc在我的asp.net MVC中执行长时间运行的进程

我正在开发一个在Windows 2012和iis-8下部署的asp.net mvc-5 Web应用程序.我的asp.net mvc有很多CRUD操作,它们在我的asp.net mvc中作为动作方法实现.但我的asp.net mvc web应用程序将进行预定的长时间运行的网络扫描过程,网络扫描主要做以下步骤: -

  1. 从我们的数据库中获取我们的服务器和虚拟机列表.
  2. 使用Rest API从第三方工具获取每个服务器和vm的扫描用户名和密码.
  3. 调用一些powershell脚本来检索服务器和vms信息,例如网络信息,内存,名称等.
  4. 使用Rest API使用扫描信息更新我们的ERP系统.

现在我使用以下方法做了一个试点项目: -

  • 我在asp.net mvc中定义了一个Model方法来完成上述4个步骤.
  • 然后我安装hangfire工具,它将在预定义的调度程序上调用scan方法.
  • 我还在我的asp.net mvc中创建了一个View,它允许用户设置hangfire计划设置(这需要在主机服务器上进行IIS重置以获取新的设置).

现在我对150个服务器进行了测试扫描,大约需要40分钟才能完成,并且运行良好.我唯一注意到的是,如果我将计划设置为在非工作时间运行(在IIS上没有活动),那么hangfire将无法调用该作业,并且在第一次请求完成后,错过的作业将跑.我通过定义一个每15分钟调用一次IIS的Windows任务来克服这个限制,以保持应用程序池的正常运行,并且运行良好...

现在我正在阅读的另一种方法就是按照以下方式进行:

  1. 我可以创建一个单独的控制台应用程序来进行扫描,而不是在asp.net mvc中定义模型方法来进行扫描.
  2. 然后在我的asp.net mvc中创建一个视图,允许用户在windows任务调度程序中创建和调度任务.我可以通过集成Windows任务调度程序API来实现.
  3. 此Windows任务将调用控制台应用程序.

现在我不确定哪种方法更好,为什么?现在一般来说,长时间运行/后台作业不应该在iis下运行..但同时将这些长时间运行的进程定义为控制台应用程序并在Windows任务调度程序中调用这些应用程序将在我的Web应用程序上创建额外的依赖项.将应用程序从移动服务器移动到另一个服务器时(例如从测试到实时)将增加额外的工作量.除此之外,我还读到了诸如hangfire,quartz等工具的设计,允许在IIS中运行长时间运行的任务并消除它们需要使用任务调度程序创建控制台应用程序和调度这些控制台应用程序..所以有人可以就此提出建议吗?

asp.net iis asp.net-mvc console-application asp.net-mvc-5

8
推荐指数
1
解决办法
1504
查看次数