小编joe*_*ish的帖子

C#MVC 4 ControllerName属性

我正在为我的MVC 4控制器提供友好的名称,我想做一些类似于[ActionName="My-Friendly-Name"]样式的东西,但对于整个控制器.

我找不到关于这种属性的任何信息,那么我该如何去做呢?另外,我需要添加一个新的MapRoute来处理它吗?

编辑:

例如,我想路由以下网址:

 http://mysite.com/my-reports/Details/5
Run Code Online (Sandbox Code Playgroud)

被路由到以下控制器:

[ControllerClass="my-reports"]  // This attribute is made up.  I'd like to know how to make this functionality
public class ReportsController : Controller
{
    //
    // GET: /Reports/

    public ActionResult Index()
    {
        return View();
    }

    public ViewResult Details(int id)
    {
        Report report = db.Reports.Single(g => g.Id == id);
        return View(report);
    }

    public ActionResult Create()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Create(Report item)
    {
        try
        {
            if (ModelState.IsValid)
            {
                item.Id = Guid.NewGuid();
                _context.Reports.AddObject(item); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-routing maproute asp.net-mvc-4

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

实体框架返回错误数据

我有一个Entity Framework 6.1项目,它正在查询SQL Server 2012数据库表并返回错误的结果.

为了说明发生了什么,我创建了两个应该具有完全相同结果的查询.该表ProjectTable有23列和20500行:

var test1 = db.ProjectTable
    .GroupBy(t => t.ProjectOwner)
    .Select(g => g.Key)
    .ToArray();

var test2 = db.ProjectTable
    .ToArray()
    .GroupBy(t => t.ProjectOwner)
    .Select(g => g.Key)
    .ToArray();
Run Code Online (Sandbox Code Playgroud)

查询旨在获取表中所有不同项目所有者的列表.第一个查询在SQL Server上执行繁重的工作,第二个查询将整个表下载到内存中,然后在客户端处理它.

第一个变量test1的长度约为300项.第二个变量test2的长度为5.

以下是EF生成的原始SQL查询:

-- test1
SELECT [Distinct1].[ProjectOwner] AS [ProjectOwner]
FROM ( SELECT DISTINCT
       [Extent1].[ProjectOwner] AS [ProjectOwner]
       FROM [dbo].[ProjectTable] as [Extent1]
     ) AS [Distinct1]

-- test2
SELECT Col1, Col2 ... ProjectOwner, ... Col23
FROM [dbo].[ProjectTable]
Run Code Online (Sandbox Code Playgroud)

当我运行此查询并分析返回的实体时,我注意到返回了完整的20500行,但该ProjectOwner列被仅有5个不同用户中的一个覆盖!

var test = db.ProjectTable.ToArray();
Run Code Online (Sandbox Code Playgroud)

我想也许是SQL Server,所以我做了一个数据包跟踪并在TDS上过滤.随机查看原始流我看到很多名称不在5的列表中,所以我知道数据正在通过网络正确发送.

如何查看EF获取的原始数据?有什么东西可能会搞乱缓存并拉出不正确的结果吗? …

c# sql-server entity-framework

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

Webpack SyntaxError:意外的令牌=>

我只是将我的项目从一台机器移动到另一台机器,当我运行时,webpack --watch我收到以下错误:

C:\Users\joe_coolish\AppData\Roaming\npm\node_modules\webpack\bin\webpack.js:186
                outputOptions.children = options.map(o => o.stats);
                                                       ^^
SyntaxError: Unexpected token =>
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3
Run Code Online (Sandbox Code Playgroud)

在我的其他计算机上完全相同的设置转换没有任何问题.什么可能导致这个?

我的Webpack版本是 webpack@2.2.1

我已经npm install在我的app目录中运行了.我的packages.json是:

{
  "version": "1.0.0",
  "name": "unlimitlists",
  "private": true,
  "devDependencies": {
    "@types/node": "^7.0.5",
    "bower": "^1.7.9",
    "grunt": "^0.4.5",
    "grunt-bower-task": "^0.4.0",
    "grunt-cli": "^0.1.13",
    "grunt-contrib-clean": "^0.7.0",
    "grunt-contrib-imagemin": "^1.0.0",
    "grunt-contrib-less": "~1.2.0",
    "grunt-typescript": "^0.8.0",
    "promise": "~7.1.1",
    "rimraf": "^2.5.2"
  },
  "dependencies": {
    "angular-hotkeys": …
Run Code Online (Sandbox Code Playgroud)

javascript npm webpack

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

设计来自XML的强类型对象

我有几个需要使用的XML文件,我总是使用XElement对象并通过属性名称或XElement的值来提取数据.

我知道在C#中使用XML必须有更好的方法.从XML文件自动生成或手动生成强类型对象的最佳方法是什么?

xml的形式是

<Group id="####">
    <title>Some Title</title>
    <description>some description</description>
    <Rule id="ID_##" severity="medium" weight="10.0">
        <version>1.001</version>
        <title>Another Title</title>
        <description>Very long description</description>
        <fixtext fixref="F-31r1_fix">Description of fix</fixtext>
        <fix id="F-31r1_fix"/>
        <check system="C-7883r4_chk">
            <check-content-ref name="M" href="URI"/>
            <check-content>Content</check-content>
        </check>
    </Rule>
</Group>
Run Code Online (Sandbox Code Playgroud)

如果我可以将XML文件解析成List<Group>最好的文件.

我能想到的唯一方法是手动创建Group,Rule和Check对象并手动分配数据.如果有更好,更自动化的方法,请告诉我!

c# xml

6
推荐指数
1
解决办法
3782
查看次数

ASP.NET Request.ClientCertificate在IIS 7上返回空

我正在将一个Web应用程序从IIS 6服务器迁移到IIS 7服务器,我在获取客户端证书时遇到了一些麻烦.

我正在使用的代码片段如下所示:

        HttpClientCertificate cert = Request.ClientCertificate;

        if (cert.IsPresent)
        {
            ...
        }
Run Code Online (Sandbox Code Playgroud)

在IIS 6服务器上,cert.IsPresent始终为true.但是,在IIS 7框中,它始终为false.两个测试均使用来自同一台计算机的IE 8完成.唯一的变化是服务器URL,因此应正确设置客户端.

我没有收到任何SSL连接错误(我正在访问该页面https)并且我已将SSL设置 - >客户端证书设置为:接受(与IIS 6配置相同).

我已经完成并尽可能地将IIS 7服务器配置到IIS 6服务器,但我仍然没有获得证书.

我还需要查看配置的其他方面吗?

此外,如果我将客户端证书:设置为必需,我在IIS 7框上会出现403.7错误.我不知道这是否是一种症状,但以防信息有用......

asp.net iis-7 client-certificates

6
推荐指数
1
解决办法
6858
查看次数

与MVVM的异步Task.Run

我一直在玩新的异步CTP和MVVM模式.我一直在使用后台工作程序转换我的旧程序并报告进度以更新模型中的集合.我把它改成了这样的东西

TaskEx.Run(async () =>
{
  while (true)
  {
    // update ObservableCollection here
  }
  await TaskEx.Delay(500);
});
Run Code Online (Sandbox Code Playgroud)

在我看来,我绑定到我的viewmodel,它暴露了这个可观察的集合.但是,当我的集合更新时,我得到以下异常

这种类型的CollectionView不支持从与Dispatcher线程不同的线程更改其SourceCollection.

我不确定在这样做的时候拉回到UI线程的正确方法是什么.

c# asynchronous mvvm async-ctp

6
推荐指数
1
解决办法
6609
查看次数

MVC将JSON ViewModel传递给View

我有一个MVC应用程序,我正在使用各种JsonResult端点来填充javascript ViewModel.

我一直在使用几个jQuery Ajax请求来填充模型,但我希望将尽可能多的初始模型传递给服务器上的视图.

ViewModel有3-5个部分(取决于用户在应用程序中的位置):

  1. 基本页面链接,这些链接不会经常更改,并且可能在整个用户的会话中完全相同
  2. 用户通知.
  3. 用户数据.
  4. (可选)可视数据
  5. (可选)misc数据

我目前正在使用此代码加载前三个部分:

$(document).ready(function () {

    ko.applyBindings(viewModel);
    @Html.Raw(ViewBag.Script)

    // Piece 1.  Almost always the same thing
    postJSON('@Url.Action("HomeViewModelJson", "Home")', function (data) {

        if (data == null)
            return;

        for (var i in data.Tabs) {
            viewModel.tabs.push({ name: data.Tabs[i] });
        }

        for (var i in data.Buttons) {
            viewModel.metroButtons.push({ name: data.MetroButtons[i] });
        }

        for (var i in data.Ribbons) {
            viewModel.ribbons.push(data.Ribbons[i]);
        }
        ApplyButtonThemes();
    });
});


// Piece 2.  Changes constantly. OK as is
postJSON('@Url.Action("GetNotifications", "NotificationAsync")', function …
Run Code Online (Sandbox Code Playgroud)

jsonp viewmodel asp.net-mvc-3 knockout.js

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

OpenGL glMatrixMode帮助

我开始在OpenGL上做一些工作,我看到很多调用glMatrixMode函数的例子.

根据我的收集,将其设置为GL_MODELVIEW或GL_PROJECTION(等)将激活该特定转换矩阵,并且对矩阵转换函数(glTranslatef,glPushMatrix,glLoadIdentity,glLoadMatrix等)的所有后续调用将仅影响活动矩阵.

我没有得到的是为什么有3个(在某些情况下为4个)不同的矩阵?我应该使用哪一个?(我可能会得到很多"使用着色器",但我不能.受学校限制...)我什么时候应该切换并激活不同的矩阵?利用所有这些而不仅仅使用一个有什么好处?

谢谢你的帮助 :)

c++ opengl graphics

5
推荐指数
2
解决办法
3984
查看次数

Databound Flipview删除ViewModel.ItemAt(0)会导致翻转过渡

我正在制作一篇文章阅读应用程序(类似于Bing新闻应用程序),我正在使用a FlipView来浏览文章.该FlipView有它的的ItemsSource数据绑定到一个ObservableCollection<T>保存文章的内容.

我只想在ObservableCollection<T>内存和性能方面保留3篇文章,所以我订阅了这个flipView_SelectionChanged事件并删除了该项目Length - 1以便返回(右侧)和项目0前进(左侧)

我遇到的问题是,当我在0使用触摸手势翻转后删除项目时,动画会再次播放.

如何防止过渡动画再次播放?

这是一个例子.创建一个新的空白商店应用程序,并添加以下内容:

public sealed partial class MainPage : Page
{
    public ObservableCollection<int> Items { get; set; }

    private Random _random = new Random(123);

    public MainPage()
    {
        this.InitializeComponent();

        Items = new ObservableCollection<int>();

        Items.Add(1);
        Items.Add(1);
        Items.Add(1);

        flipview.ItemsSource = Items;
    }

    private void flipview_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (this.flipview.SelectedIndex == 0)
        {
            Items.Insert(0, 1);
            Items.RemoveAt(Items.Count - 1);
        }
        else if (this.flipview.SelectedIndex …
Run Code Online (Sandbox Code Playgroud)

c# winrt-xaml windows-store-apps flipview

5
推荐指数
1
解决办法
990
查看次数

NegotiateStream 拒绝不是本地管理员的客户端

我有一个非常基本的客户端/服务器测试设置失败并显示以下消息:

服务器拒绝了客户端凭据。

除非客户端以在服务器上具有管理员权限的帐户登录。这是我不想要的。

这是我的客户端代码:

var formatter = new BinaryFormatter();

...

using (var client = new TcpClient(ip, 1248))
using (var stream = client.GetStream())
using (var negStream = new NegotiateStream(stream, false))
{
    await negStream.AuthenticateAsClientAsync(CredentialCache.DefaultNetworkCredentials, string.Empty, ProtectionLevel.EncryptAndSign, TokenImpersonationLevel.Identification));
    formatter.Serialize(negStream, "This is a test!");
}
Run Code Online (Sandbox Code Playgroud)

这是我的服务器代码:

var listener = new TcpListener.Create(1248);
listener.Start();

var tcpClient = listener.AcceptTcpClient();
using (var stream = tcpClient.GetStream())
using (var negStream = new NegotiateStream(stream, false))
{
    await negStream.AuthenticateAsServerAsync(CredentialCache.DefaultNetworkCredentials, ProtectionLevel.EncryptAndSign, TokenImpersonationLevel.Identification));
    Console.WriteLine(formatter.Deserialize(negStream));
}
Run Code Online (Sandbox Code Playgroud)

如何配置服务器以接受任何登录用户?我需要查看其他设置吗?还有另一种方法可以使用域凭据对流进行身份验证吗?

c# tcplistener windows-authentication tcpclient

5
推荐指数
1
解决办法
365
查看次数