小编Eri*_*ips的帖子

使用私有构造函数实例化内部类

我正在尝试使用反射来创建类的实例.但它内部密封,并有私人构造.我想知道如何初始化它,作为框架的一部分,我只能用反射把它拿出来?

internal sealed class ABC
{
    private ABC(string password){}
    public static ABC Create(string password){};
}
Run Code Online (Sandbox Code Playgroud)

补充:System.ServiceModel.Channels.SelfSignedCertificate是我尝试使用的内部类

c#

25
推荐指数
2
解决办法
3万
查看次数

当前的动作是ChildAction吗?

如何确定当前操作是ChildAction还是路由主操作?我应该检查URL并与操作名称进行比较吗?那不太好,因为它依赖于路由模式......
或者我应该做两个同名的动作,将ChildActionOnly放在其中一个并具有单独的逻辑(主要返回View()或PartialView())?如何区分过载?

好的,从另一个角度来看:如何制作它,如果它是一个ChildAction然后返回一个PartialView,否则一个完整的View?

asp.net-mvc asp.net-mvc-3

25
推荐指数
1
解决办法
4531
查看次数

是否可以将DataAnnotations与接口一起使用?

我想使用DataAnnotations来验证实现某些接口的类,因此我将验证属性添加到接口,如下所示:

public interface IUser
{
    [Required]
    string Name { get; set; }

    [Display(Name = "Email Address")]
    [Required]
    string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用它时不起作用Validator.TryValidateObject.

有没有办法做到这一点而不必编写自定义TryValidateObject方法?

.net c# data-annotations

24
推荐指数
2
解决办法
7724
查看次数

如何在mvc中使用防伪令牌制作ajax请求

我对MVC项目的以下细节有疑问.

当我试图使用jquery ajax请求加载面板像旋转gif(甚至文本)时,我收到错误,从提琴手观察到

所需的防伪表单字段"__RequestVerificationToken"不存在.

如果我[ValidateAntiForgeryToken] attribute 在POST操作方法发表评论 并使用加载面板它工作正常.我想知道为什么我收到此错误.

我甚至使用了序列化的查询字符串

__RequestVerificationToken= $('input[name="__RequestVerificationToken"').val()
Run Code Online (Sandbox Code Playgroud)

我仍然得到错误

防伪令牌无法解密.如果此应用程序由Web场或群集托管,请确保所有计算机都运行相同版本的ASP.NET网页,并且<machineKey>配置指定显式​​加密和验证密钥.

AutoGenerate不能在群集中使用

我该怎么用?

这里更新了问题代码

var token = $('input[name="__RequestVerificationToken"]').val();
$('#submitaddress').click(function subaddr(event) {
    event.preventDefault();
    event.stopPropagation();
  //$('#addAddress').html('<img src="/img/animated-overlay.gif"> Sending...');
   // $('#addAddress').blur();
    //  $(this).bl
    if ($('#Jobid').val()!="") {
        $('#TransportJobId').val(parseInt($('#Jobid').val()));
        $.ajax(
              {
                  url: '/TransportJobAddress/create',
                  type: 'POST',
                  data: "__RequestVerificationToken=" + token + "" + $('form[action="/TransportJobAddress/Create"]').serialize(),
                  success: function poste(data, textStatus, jqXHR) { $('#addAddress').html(data); return false; },
                  error: function err(jqXHR, textStatus, errorThrown) { alert('error at address :' + errorThrown); }
              });
    }
    else { …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc jquery asp.net-mvc-4

24
推荐指数
2
解决办法
4万
查看次数

如何取消/恢复对可观察模型的更改(或使用未经修改的副本替换数组中的模型)

我有一个viewModel,带有一个带有可观察变量的observableArray对象.

我的模板使用编辑按钮显示数据,该按钮隐藏显示元素并显示带有值的输入元素.您可以开始编辑数据,然后您可以选择取消.我希望这个取消恢复到对象的未更改版本.

我尝试通过这样做来克隆对象:

viewModel.tempContact = jQuery.extend({}, contact);
Run Code Online (Sandbox Code Playgroud)

要么

viewModel.tempContact = jQuery.extend(true, {}, contact);
Run Code Online (Sandbox Code Playgroud)

但是一旦联系人,viewModel.tempContact就会被修改.

是否有任何内置于KnockoutJS来处理这种情况,或者我最好只是创建一个具有完全相同细节的新联系人,并在取消时用新联系人替换修改后的联系人?

任何意见是极大的赞赏.谢谢!

javascript observable knockout.js

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

保持控制器薄(太多的操作方法)

我正在研究我的第一个真正的ASP.NET MVC项目,我注意到我一直在工作的控制器变得相当大.这似乎违背了保持控制器薄的最佳做法.

我已经做好了将业务逻辑从控制器中删除的工作.我为此使用了一个单独的层.每个操作主要调用业务层中的方法,并根据模型状态是否有效来协调最终结果.

也就是说,控制器有很多动作方法.直觉上,我想将控制器分解为子控制器,但我没有看到一个简单的方法.我可以简单地将控制器分解为单独的控制器,但是我松开了层次结构,感觉有点脏.

是否有必要使用大量精简操作重构控制器?如果是这样,最好的方法是什么?

asp.net-mvc actionmethod asp.net-mvc-controller

22
推荐指数
1
解决办法
4138
查看次数

计算列上的T-SQL列别名 - 无效的列名称

我正在使用别名来引用计算列.这是我正在努力工作的实际代码的片段,用于计算相似性并返回相似性得分为3或更高的匹配.

select [FirstName], difference([FirstName], 'mitch') as similarity
from [Dev].[dbo].[Name]
where similarity > 2
order by similarity desc
Run Code Online (Sandbox Code Playgroud)

错误:

select [FirstName], difference([FirstName], 'mitch') as similarity
from [Dev].[dbo].[Name]
where similarity > 2
order by similarity desc
Run Code Online (Sandbox Code Playgroud)

由于相似性不是一个真正的专栏,我将如何使这项工作?

sql t-sql

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

为什么结构体内的匿名方法无法访问'this'的实例成员

我有一个如下代码:

struct A
{
    void SomeMethod()
    {
        var items = Enumerable.Range(0, 10).Where(i => i == _field);
    }

    int _field;
}
Run Code Online (Sandbox Code Playgroud)

...然后我得到以下编译器错误:

struct A
{
    void SomeMethod()
    {
        var items = Enumerable.Range(0, 10).Where(i => i == _field);
    }

    int _field;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这里发生了什么.

c#

21
推荐指数
1
解决办法
1115
查看次数

如何使用ViewBag中的JSON填充javascript变量?

我有这个索引动作:

public ActionResult Index()
{  
    var repo = (YammerClient) TempData["Repo"];
    var msgCol = repo.GetMessages(); 

    ViewBag.User = repo.GetUserInfo();
    return View(msgCol.messages);
}
Run Code Online (Sandbox Code Playgroud)

GetMessages返回POCO消息列表,GetUserInfo返回一个POCO,其中包含用户信息(id,name等).

我想用用户信息的JSON表示填充javascript变量.

所以我想在视图中做这样的事情:

...
<script>
    var userInfo = "@ViewBag.User.ToJson()"
</script>
...
Run Code Online (Sandbox Code Playgroud)

我知道这不起作用,但有办法吗?我想避免在加载页面后只是为了获取用户信息而执行ajax请求.

javascript asp.net asp.net-mvc json viewbag

21
推荐指数
2
解决办法
4万
查看次数

如何阻止IISExpress将每个请求的每个细节转储到Visual Studio Output窗口?

我的VS 2013输出窗口充满了这个:

iisexpress.exe Information: 0 : Request, Method=GET, Url=http://localhost:51741/api/Clients/?$filter=UniqueName eq '6269', Message='http://localhost:51741/api/Clients/?$filter=UniqueName eq '6269''
iisexpress.exe Information: 0 : Message='Clients', Operation=DefaultHttpControllerSelector.SelectController
iisexpress.exe Information: 0 : Message='MyProj.Controllers.ClientsController', Operation=DefaultHttpControllerActivator.Create
iisexpress.exe Information: 0 : Message='MyProj.Controllers.ClientsController', Operation=HttpControllerDescriptor.CreateController
iisexpress.exe Information: 0 : Message='Selected action 'GetClients()'', Operation=ApiControllerActionSelector.SelectAction
iisexpress.exe Information: 0 : Operation=HttpActionBinding.ExecuteBindingAsync
iisexpress.exe Information: 0 : Operation=QueryableAttribute.ActionExecuting
iisexpress.exe Information: 0 : Message='Action returned 'System.Collections.Generic.List`1[MyProj.Models.ClientDto]'', Operation=ReflectedHttpActionDescriptor.ExecuteAsync
iisexpress.exe Information: 0 : Message='Will use same 'JsonMediaTypeFormatter' formatter', Operation=JsonMediaTypeFormatter.GetPerRequestFormatterInstance
iisexpress.exe Information: 0 : Message='Selected formatter='JsonMediaTypeFormatter', content-type='application/json; charset=utf-8'', Operation=DefaultContentNegotiator.Negotiate
iisexpress.exe Information: 0 …
Run Code Online (Sandbox Code Playgroud)

trace visual-studio iis-express

21
推荐指数
2
解决办法
3846
查看次数