小编xr2*_*0xr的帖子

使用jQuery的".val()"在表单中设置隐藏字段的值不起作用

我一直在尝试使用jQuery在表单中设置隐藏字段的值,但没有成功.

以下是解释问题的示例代码.如果我将输入类型保持为"文本",它可以毫无困难地工作.但是,将输入类型更改为"隐藏",不起作用!

<html>

    <head>
        <script type="text/javascript" src="jquery.js">
        </script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("button").click(function() {
                    $("input:text#texens").val("tinkumaster");
                });
            });
        </script>
    </head>

    <body>
        <p>
            Name:
            <input type="hidden" id="texens" name="user" value="texens" />
        </p>
        <button>
            Change value for the text field
        </button>
    </body>

</html>
Run Code Online (Sandbox Code Playgroud)

我还尝试了以下解决方法,将输入类型设置为"text",然后使用"display:none"样式作为输入框.但是,这也失败了!似乎jQuery在设置隐藏或不可见的输入字段时遇到了一些麻烦.

有任何想法吗?有没有一个解决方法实际上有效?

jquery set hidden-fields

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

如何将接口用作C#泛型类型约束?

有没有办法获得以下函数声明?

public bool Foo<T>() where T : interface;
Run Code Online (Sandbox Code Playgroud)

即.其中T是接口类型(类似于where T : class,和struct).

目前我已经满足于:

public bool Foo<T>() where T : IBase;
Run Code Online (Sandbox Code Playgroud)

其中IBase被定义为一个空接口,由我的所有自定义接口继承...不理想,但它应该工作...为什么你不能定义泛型类型必须是一个接口?

对于它的价值,我想要这个,因为Foo它正在做需要接口类型的反射......我可以将它作为普通参数传递并在函数本身中进行必要的检查,但这看起来更加类型安全(而且我假设性能更高一些,因为所有检查都是在编译时完成的).

c# generics interface constraints

155
推荐指数
7
解决办法
11万
查看次数

最后一次出现字符时分割字符串的最佳方法?

假设我需要像这样拆分字符串:

输入字符串:"我的名字是Bond._James Bond!" 输出2个字符串:

  1. "我的名字是邦德"
  2. "_占士邦!"

我试过这个:

int lastDotIndex = inputString.LastIndexOf(".", System.StringComparison.Ordinal);
string firstPart = inputString.Remove(lastDotIndex);
string secondPart= inputString.Substring(lastDotIndex + 1, inputString.Length - firstPart.Length - 1);
Run Code Online (Sandbox Code Playgroud)

有人可以提出更优雅的方式吗?

c# string split

46
推荐指数
3
解决办法
5万
查看次数

我迷路了.ASP.NET MVC 5发生了什么?

我一直在努力开展各种项目,显然微软一直在忙着做出一些重大改变,这让我感到很困惑.去年我安装Visual Studio 2017时,ASP.NET Core首次出现在我的雷达上,然后创建了一个新项目,突然选择了.NET Framework,.NET Standard和.NET Core.所以我稍微调查了一下,发现后两者在某种程度上是完整框架的缩写版本.我读过Scott Hanselman的这篇文章ASP.NET 5已经死了 - 介绍ASP.NET Core 1.0和.NET Core 1.0我也找到了这个,它让我远离ASP.NET Core:在ASP.NET和ASP.NET Core之间选择.我的内容是"核心是新的,你可以继续使用完整的框架." 所以我使用.NET Framework 4.6.2和Microsoft.AspNet.Mvc 5.2.3创建了一个新的ASP.NET MVC站点.

自从创建该项目以来,我发现MVC和实体框架中的一些错误似乎只是发现在网络上唯一提到它们似乎是在Core中,而这是他们被认为被修复的唯一地方.

现在,今天,我正在尝试查看System.Web.Mvc.Controller和System.Web.Mvc.JsonResult上的文档,除了Core文档之外它已经消失了.我终于把它挖到了这里,它说它不再被维护了?

我对Core 了解,并说,"好吧,我为什么要关心?我会继续做我正在做的事情,并在完成后再检查一下." 但现在似乎不再支持4.6.2了.有人可以解释发生了什么吗?我的.NET 4.6.2/MVC 5.2.3项目现在已经过时了吗?如果没有,为什么文件已经退役并被隐藏起来?我担心我的某些依赖项甚至可能不适用于Core或与Core兼容.

.net asp.net asp.net-mvc asp.net-core-mvc .net-core

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

实体4.1使用新的子实体更新现有父实体

我有一个应用程序,您可以创建一种新类型的产品,并添加一些成分.产品和成分都是保存在数据库中的实体.产品实体具有成分实体的集合.

(简化版)

public class Product
   Public Sub New()
     Me.Ingredients = New List(Of Ingredient)()
   End Sub

   Property Ingredients as ICollection(Of Ingredient)
end class
Run Code Online (Sandbox Code Playgroud)

当我第一次保存产品时,一切顺利:我只是将它添加到上下文并调用SaveChanges.

myDataContext.Products.Add(product)
myDataContext.SaveChanges()
Run Code Online (Sandbox Code Playgroud)

产品(父母)和成分(儿童)都被保存并相互链接.一切都很好.

但是,当我向现有产品添加/删除某种成分时,我开始遇到问题.我首先清除产品实体中的现有成分集合,然后再次添加更新的成分列表(我不再重复使用成分添加时刻).然后,我将产品实体的状态更改为已修改并调用savechanges.但是,在状态更改I上,获取异常" ObjectStateManager中已存在具有相同键的对象 ".

myDataContext.Entry(product).State = EntityState.Modified
Run Code Online (Sandbox Code Playgroud)

在"一些"搜索之后,我发现问题是所有成分的主键都为0(因为它们尚未添加),当您更改父实体(产品)的状态时,所有子实体(成分) )使用0的键附加到上下文,这会导致问题,因为键不再是唯一的.

我一直在寻找解决方案,但无法弄清楚如何解决这个问题.我尝试在更改状态之前将成分添加到上下文中,但随后缺少产品和成分之间的链接...如何使用新的,尚未添加的子实体更新现有父实体?

我使用Entity Framework 4.1和Code First.

希望你能帮我!

entity-framework-4.1

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

更新Visual Studio 2017 MVC查看脚手架到Bootstrap 4

我刚刚将我的Visual Studio 2017 ASP.NET MVC 5应用程序从Bootstrap v3更新到v4.我发现当我使用脚手架添加新的编辑局部视图时,它仍然使用表单的Bootstrap v3 CSS类名.有没有办法更新脚手架使用BS v4?

编辑

我正在谈论的内容似乎有些混乱.在Visual Studio 2017中,在MVC项目的"解决方案资源管理器"中,右键单击"视图"文件夹>"添加">"查看...">"MVC 5视图">"单击添加".这将打开"添加视图"对话框.我键入我的视图名称,选择编辑模板,然后选择,Views folder > Add > View... > MVC 5 View > Click Add作为Model类.Visual Studio生成此标记.这个过程叫做脚手架.

@model Demo.ViewModels.LoginVm

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>LoginVm</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } }) …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-scaffolding asp.net-mvc-5 bootstrap-4 visual-studio-2017

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

如何使Entity Framework 6(DB First)显式插入Guid/UniqueIdentifier主键?

我正在使用Entity Framework 6 DB First和SQL Server表,每个表都有一个uniqueidentifier主键.这些表在主键列上有一个默认值,用于设置它newid().我相应地更新了我的.edmx来设置StoreGeneratedPattern这些列Identity.所以我可以创建新记录,将它们添加到我的数据库上下文中,并自动生成ID.但现在我需要保存具有特定ID的新记录.我读过这篇文章,说明SET IDENTITY_INSERT dbo.[TableName] ON在使用int identity PK列时保存之前必须执行.由于我的是Guid而不是实际上是一个标识列,所以基本上已经完成了.然而,即使在我的C#中我将ID设置为正确的Guid,该值甚至不作为参数传递给生成的SQL插入,并且SQL Server为主键生成新的ID.

我需要能够兼得:

  1. 插入新记录并自动为其创建ID,
  2. 插入具有指定ID的新记录.

我有#1.如何使用特定主键插入新记录?


编辑:
保存代码摘录(注意accountMemberSpec.ID是我想成为AccountMember主键的特定Guid值):

IDbContextScopeFactory dbContextFactory = new DbContextScopeFactory();

using (var dbContextScope = dbContextFactory.Create())
{
    //Save the Account
    dbAccountMember = CRMEntity<AccountMember>.GetOrCreate(accountMemberSpec.ID);

    dbAccountMember.fk_AccountID = accountMemberSpec.AccountID;
    dbAccountMember.fk_PersonID = accountMemberSpec.PersonID;

    dbContextScope.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

-

public class CRMEntity<T> where T : CrmEntityBase, IGuid
{
    public static T GetOrCreate(Guid id)
    {
        T entity;

        CRMEntityAccess<T> entities = new CRMEntityAccess<T>();

        //Get or …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server entity-framework guid

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

401客户端'协商',服务器'协商,NTLM'调用WCF服务器到服务器

好的,我已经阅读了我可以通过此错误找到的每个主题和问题,并且令人惊讶地没有找到解决方案.我正在尝试在我的IIS托管的WCF服务(.NET 4.0)上要求Windows身份验证,直到现在,该服务都是可选的.我已经在服务器上提供了一个启用Windows身份验证的端点,但有几个远程应用程序成功使用它.我现在正尝试将使用WCF服务的Web应用程序和其他服务器应用程序切换到此安全端点,方法是为它们提供与工作远程客户端完全相同的客户端配置,但服务器应用程序正在接收带有以下消息的401:

The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate,NTLM'.]

我为WCF托管站点启用了匿名和Windows身份验证.我开始使用的Web应用程序托管在与WCF服务不同的服务器上,并且运行在ASP.NET 2.0和Windows Server 2008 R2 Enterprise上.我已经使用allowNtlm创建了客户端行为,并将NetworkSecurity:LAN Manager身份验证级别设置为在客户端发送LM和NTLM .... 在托管端,它被设置为发送NTLMv2仅响应...我不知道这是否会影响服务器/服务处理身份验证的方式.我也尝试在客户端上设置allowedImpersonationLevel为Impersonation,谢天谢地,它不起作用(因为模拟不应该是必要的).对于在与Web应用程序相同的服务器上运行的Windows服务和控制台应用程序,我们似乎得到了相同的结果.

这是我的服务器配置:

<binding name="WindowsSecuredBinding">
    <security mode="Transport">
        <transport clientCredentialType="Windows" />
    </security>
</binding>
...
<service behaviorConfiguration="OMWebServices.QueueServiceBehavior"
    name="OMWebServices.QueueService">
    <endpoint address="" binding="basicHttpBinding" name="QueueEndpoint"
      bindingName="" contract="OMWebServices.IQueueService" />
    <endpoint binding="basicHttpBinding" bindingConfiguration="WindowsSecuredBinding"
      name="QueueSecuredEndpoint" contract="OMWebServices.IQueueService" />
    <endpoint address="mex" binding="mexHttpBinding" name="QueueMetadataEndpoint"
      contract="IMetadataExchange" />
  </service>
...
<behavior name="OMWebServices.QueueServiceBehavior">
    <serviceMetadata httpGetEnabled="true" />
    <serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
Run Code Online (Sandbox Code Playgroud)

这是客户端配置:

<endpoint address="https://.../QueueService.svc" binding="basicHttpBinding" bindingConfiguration="QueueSecuredEndpoint" behaviorConfiguration="OMServiceBehavior" …
Run Code Online (Sandbox Code Playgroud)

asp.net authentication iis wcf web-services

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

已配置bundleconfig.json,但未在 ASP.NET Core 3.1 中创建包

使用ASP.NET Core 页面中的 Bundle 和 minify 静态资源作为指南,我在项目根目录中创建了一个 bundleconfig.json 并将其设置为创建我想要创建的 css 和脚本包。该页面似乎暗示,虽然可以使用 Gulp 或 Grunt 等第 3 方工具,但基本目的不需要它们,我应该能够“构建应用程序”,然后找到创建的捆绑 .min 文件,但它们不是我建造之后。我尝试简化我的配置,将两个 CSS 文件捆绑在一起,但它仍然不会创建输出文件。这是我的bundleconfig.json内容:

[
    {
        "outputFileName": "wwwroot/css/tlgsso.min.css",
        "inputFiles": [
            "wwwroot/css/application.css",
            "wwwroot/css/site.css"
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

我一直假设这只是通过在根目录中放置一个名为“bundleconfig.json”的文件来实现。与往常一样,我只能找到有关 ASP.NET Core 1-2.0 的信息。我是否缺少触发捆绑和缩小所需的东西?

asp.net-mvc-3 bundling-and-minification

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

无法访问asp.net中的嵌入式资源

我正在尝试将图像和样式表从用户控件移动到程序集中的嵌入资源.我使用Reflector看到图像和.css文件嵌入在程序集中,但是当我尝试使用ClientScript.GetWebResourceUrl()创建的URL访问它们时,找不到该资源.我很难过.

程序集默认命名空

TestWebApp
Run Code Online (Sandbox Code Playgroud)

文件的路径(标记为BuildAction:Embedded Resource)是

TestWebApp/Resources/CSS/PaymentHistory.css
TestWebApp/Resources/Images/loading.gif
Run Code Online (Sandbox Code Playgroud)

所以我的资源注册为:

[assembly: WebResource("TestWebApp.Resources.CSS.PaymentHistory.css", "text/css", PerformSubstitution = true)]
[assembly: WebResource("TestWebApp.Resources.Images.loading.gif", "image/gif")]
Run Code Online (Sandbox Code Playgroud)

访问资源的用户控件(在同一程序集中):

TestWebApp.UserControls.PaymentHistory
Run Code Online (Sandbox Code Playgroud)

为了简化,我目前只是尝试引用图像而不是样式表.在我的用户控件的Page_Load中,我将Image控件的ImageUrl设置为资源URL:

image1.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "TestWebApp.Resources.Images.loading.gif");
Run Code Online (Sandbox Code Playgroud)

在运行时,一切看起来都没有错误,但它会渲染出损坏的图像.这是渲染的图像源:

<img style="border-width:0px;" src="/WebResource.axd?d=8fC_1tLPjrUCxmFc_Q2MKY0-pHAak-sTWkpLLV3D56H_c08LujXC63ia2PNICE65_i-Q4JqprAigLpbrXG-rIAr6ePO4HHcdQKgdd3szlThv2gizxOJLJsPRNe-b_M6ApTwPsH_5oZAuONTN0cumOTRr1nA1&amp;t=635133745137507721" id="ph1_image1">
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器中导航到该URL,则会收到404,无法找到该资源.我究竟做错了什么?

编辑: 必须有一些基本的我不理解和/或我正在做一些非常愚蠢的事情.这是一个简单的VS 2010示例.我已经遵循了所有必要的步骤,我知道嵌入JScript1.js并通过WebResource.axd访问它,但它得到了错误.

c# asp.net asp.net-3.5 embedded-resource

7
推荐指数
1
解决办法
5190
查看次数