小编mus*_*fan的帖子

MVC 3:使用HtmlHelpers有条件地添加禁用属性

我有一个ASP.Net MVC 3 Web应用程序,我正在使用HtmlHelper类向视图页面添加一个复选框,就像这样......

@Html.CheckBox("CheckBox1", true, new { @class = "Class1" })
Run Code Online (Sandbox Code Playgroud)

我想要做的是根据视图状态属性有条件地添加disabled属性.基本上以下是理想的......

@Html.CheckBox("CheckBox1", true, new { @class = "Class1", @disabled = Model.ReadOnly })
Run Code Online (Sandbox Code Playgroud)

遗憾的是,由于disabled属性的性质,这将不起作用,因为分配给disabled属性的任何值(甚至"false")都将转换为true.

我已经想到了一些解决这个问题的解决方案,所以问题不是我怎么能这样做.但是,有一种简单的方法,如上面所需的方法?或者我是否必须诉诸以下其中一项?

我知道我能做什么......

  1. 创建一个if/else语句并写入不同的Html.CheckBox行(对于可读性而言不是很好 - 并且可能会抛出标记警告 - 不确定)

  2. 跳过HtmlHelper类并手写标记以允许更好的条件属性(保持代码更短,但增加了不一致性)

  3. 创建一个自定义帮助程序,它采用"禁用"参数(最干净的解决方案,但需要不需要的额外方法 - 可能是目前为止最好的选择)

asp.net-mvc html-helper asp.net-mvc-3

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

如何显示服务中的对话框

我已经阅读了很多关于这个主题的帖子,但是没有什么对我有用(或者没有我想要的效果).

我有一个应用程序,登录后启动后台服务(Service类的实现).此服务与服务器同步,如果有新订单,则会创建通知.

到目前为止,一切都很好,我有通知和Toast消息.但是,我想要一个对话框,通知用户有关新订单的信息.

据我所知,您可以从服务中启动一个活动,该活动显示对话框.这有效,但活动从当前活动堆栈开始并显示对话框.我有一个没有附加视图的活动,但是它在黑色背景上正确显示了对话框.

我想要的是在当前活动上显示对话框,导致实际背景(运行活动)淡出并显示对话框.

这有点可能吗?

谢谢,菲利普

service android dialog

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

创建一个公共谓词函数

首先,我不确定用什么术语来提出这个问题,这可能就是为什么我没有找到自己搜索的答案.

所以我正在使用Linq to SQL(C#,.Net 4),我希望得到一个符合条件的所有用户的列表,其基本内容我会做这样的事情:

var users = DataContext.Users.Where(x => x.Criteria1 == "something");
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我想要匹配一些字段,事情是这些特定的字段是一个常见的检查,我希望能够创建一个专用的功能,我可以在我的任何用户查询中使用它来检查这个比赛.

要尝试并解释说,好一点的可以举一个例子:比方说,用户有5面旗帜,我希望有一个共同的检查,看是否任何这些标志的设置.所以我可以这样写我的查询:

var users = DataContext.Users.Where(x => x.Flag1 || x.Flag2 || x.Flag3 || x.Flag4 || x.Flag5);
Run Code Online (Sandbox Code Playgroud)

但我想做的是分开"5旗检查",这样我也可以在其他查​​询中使用它,最终我想使用类似的东西:

var users = DataContext.Users.Where(x => x.Criteria1 == "something" && CheckForFlags(x));
Run Code Online (Sandbox Code Playgroud)

我通过这样的函数尝试了这个:

static bool CheckForFlags(User user)
{
   return user.Flag1 || user.Flag2 || user.Flag3 || user.Flag4 || user.Flag5;
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

"方法'布尔CheckForFlags(用户)'没有支持的SQL转换."

......这是有道理的,但是我能做些什么来让这项工作按我想要的方式进行?或者这是一个限制,因为我使用Linq to SQL,实际上是Linq to Objects可以使用的东西?

c# linq-to-sql

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

`fa-fw`课程的目的是什么?

通过fontawesome网站上的示例,我注意到一些人使用了这个类fa-fw.例如:

<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>
Run Code Online (Sandbox Code Playgroud)

我有没有试过,我看不出任何显着的差异.

fa-fw堂课的目的是什么?

font-awesome

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

MVC 3 Razor View:从布尔模型值生成JavaScript

我正在使用ASP.Net MVC 3 Razor视图引擎.

我需要根据View Model中的值在View中生成一些JavaScript代码.我需要使用的值是一个布尔值,本例中我们可以调用它IsSet.

所以我想要做的是创建一个基于此值的JavaScript布尔值,稍后我可以在脚本中使用它.

请记住,对于以下所有示例,我在我的视图顶部都有这些代码...

@{ string IsSet = Model.IsSet  ? "true" : "false"; }
Run Code Online (Sandbox Code Playgroud)

注意:以下所有示例均为JavaScript.

第一次尝试 ......

var IsSet = @(IsSet);
Run Code Online (Sandbox Code Playgroud)

...这实际上有效,问题是由于格式错误的JavaScript,它会破坏 VS 2010中的自动格式化(CTRL + E,D) - 正如您所料,这是不可接受的.

第二次尝试 ......

var IsSet = "@(IsSet)";
Run Code Online (Sandbox Code Playgroud)

...我知道,JavaScript很聪明,它会在需要时自动解析我的字符串.哎呀,忘了它是一个字符串类型,除了空之外的任何东西都评估为true.

第三次尝试 ......

var IsSet = Boolean("@(IsSet)");
Run Code Online (Sandbox Code Playgroud)

....肯定这会工作...不,再次将非空字符串转换为true(糟糕的解析器!)

第四次尝试 ......

var IsSet = "@(IsSet)" === "true";
Run Code Online (Sandbox Code Playgroud)

最后一些有用的东西,但它对我来说并不好看.

如果需要我会使用它,但最终我的问题是:有没有更好的方法来处理这种情况?也许,我第一次尝试中的不受欢迎的行为只是微软可能忽略的事情?

如果有人对我进行了第五次尝试,那就太好了.

对我来说重要的是VS 2010中的自动格式化不会中断

谢谢

javascript razor asp.net-mvc-3

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

使用XPath解析XML文档

可以说我有以下xml(一个简单的例子)

<rows>
   <row>
      <name>one</name>
   </row>
   <row>
      <name>two</name>
   </row>
</rows>
Run Code Online (Sandbox Code Playgroud)

我试图通过使用XmlDocument和XPath解析这个(最终我可以创建行列表).

例如...

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

foreach(XmlNode row in doc.SelectNodes("//row"))
{
   string rowName = row.SelectSingleNode("//name").InnerText;
}
Run Code Online (Sandbox Code Playgroud)

为什么,在我的foreach循环中,rowName总是"一个"?我希望它在第一次迭代时是"一个",在第二次迭代时是"两个".

似乎// name获取文档中的第一个实例,而不是我期望的行中的第一个实例.毕竟,我在"行"节点上调用该方法.如果这是"它是如何工作的"那么任何人都可以解释我如何改变它以满足我的需求?

谢谢

c# xpath xmldocument

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

CRM 2011:使用Javascript获取实体

我正在进行一些CRM 2011在线定制,我需要使用javascript获取实体.

我需要的实体将基于另一个字段(联系人实体)的ID值 - 这个联系人ID我可以很好.

我想要的实体是一个自定义实体.根据联系人ID可能有多个匹配项,所以我只想获取列表中的第一个匹配项(顺序并不重要)

到目前为止,我已经研究了几种方法来做到这一点......

  • OData - 关于我可以创建哪些查询表达式,我找不到足够的示例,我也不知道是否/如何使这个工作适用于自定义实体

  • FetchXML - 我也可以使用内置的"高级查找"创建一个很好的FetchXML查询,如果有人可以提供帮助,我很乐意通过javascript调用它吗?我在这里找到了一个有希望的答案,但我看不出"结果"如何设置返回数据(Service.Fetch函数)

  • SOAP请求 - 我尝试的第一件事是我在CRM 4中可以做的类似方法,但这似乎不起作用.虽然请求执行,但我的结果数据似乎是空的.这就是我所有的代码所以,如果任何人可以发现下面的代码的问题,那将是伟大的.

编辑:我发现了一些冗余的查询数据(我已经删除了链接开始标记,但留下了结束标记) - 因为删除这个我现在获取XML结果数据...但是,where子句似乎不适用(只需获取所有列表)实体)

    var xml = "<?xml version='1.0' encoding='utf-8'?>" + 
    "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + 
    GenerateAuthenticationHeader() +
    "<soap:Body>" + 
    "<RetrieveMultiple xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" + 
    "<query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" + 
    "<q1:EntityName>new_vehicle</q1:EntityName>" + 
    "<q1:ColumnSet xsi:type='q1:ColumnSet'>" + 
    "<q1:Attributes>" + 
    "<q1:Attribute>new_vehicleid</q1:Attribute>" +
    "<q1:Attribute>new_primarydriver</q1:Attribute>" +
    "<q1:Attribute>statuscode</q1:Attribute>" +
    "<q1:Attribute>new_registration</q1:Attribute>" +
    "</q1:Attributes>" + 
    "</q1:ColumnSet>" + 
    "<q1:Distinct>false</q1:Distinct>" + 

    "<q1:Conditions>" + 

                     "<q1:Condition>" +
                     "<q1:AttributeName>new_primarydriver</q1:AttributeName>" +
    "<q1:Operator>Equal</q1:Operator>" +
    "<q1:Values>" +
    "<q1:Value …
Run Code Online (Sandbox Code Playgroud)

json dynamics-crm odata dynamics-crm-2011 dynamics-crm-online

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

Visual Studio包:设置自定义解决方案资源管理器上下文菜单项的可见性

我正在创建一个Visual Studio包(这是我的第一次),我的最终目标是为解决方案资源管理器创建一个仅适用于某些文件类型的上下文菜单项.(我认为这将是一个常见的事情,但没有找到任何体面的教程,所以如果你知道任何请告诉我)

我按照一个简单的MSDN指南首先在工具栏中创建一个项目(我忘记链接它的位置),这很好.

然后我找到了将其移动到Solution Explorer上下文菜单的方法.这是通过操作.vsct文件并具有如下元素来实现的:

<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
Run Code Online (Sandbox Code Playgroud)

这可能没关系,但我试图设置场景.

现在,因为我只想显示某些文件类型的项目,所以我需要找到一种方法来在按下右键单击按钮时检查文件.缩短搜索时间,我找到了这个并最终得到以下代码:

protected override void Initialize()
{
    //stuff
    OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
    menuItem.BeforeQueryStatus += menuItem_BeforeQueryStatus;
    //more stuff
}

void menuItem_BeforeQueryStatus(object sender, EventArgs e)
{
    var myCommand = sender as OleMenuCommand;
    myCommand.Text = "NEW NAME";
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我只是试图设置文本来尝试并证明它有效,我知道有一个Visible属性,但我希望这一步先工作.该BeforeQueryStatus事件被触发,并且调试显示代码按预期执行.但是,上下文菜单项没有变化,它保留原始文本.

我在这里错过了什么?为什么不更新?

c# visual-studio-2012 visual-studio-package

14
推荐指数
2
解决办法
3474
查看次数

公钥和私钥是否可以互换?

一方面,我听到人们说这两个密钥是完全可以互换的,第一个密钥会解密第二个加密的密钥.这让我觉得这两个键是可以互换的.

但另一方面,RSA生成的密钥似乎具有不同的长度,而在另一个主题上,使用私钥加密被称为"签名",并且被认为比使用公钥加密更不安全.(2)

最重要的是,当公钥应该在野外公开分发时,应该保持私钥不公开.(3)

我计划从一个独特的服务器接收数据,所以我的想法是在该服务器上保留一个公钥以加密数据,并将私钥分发给所有可能的客户,但这与(3)相反.相反,如果我使用私钥分发公钥并加密我的数据,根据(2),加密安全性较低.

我应该分发公钥并使用私钥进行加密以满足(2)或其他方式吗?

注意:就我而言,性能不是问题.

encryption rsa encryption-asymmetric

13
推荐指数
2
解决办法
3393
查看次数

JQuery UI:取消Droppable Drop可排序

我正在使用JQuery 1.5.1和JQuery UI 1.8.11.

我已经添加了许多项目的可排序 - 这里的任务是允许拖动排序,这一切都很好.

但我也希望合并droppable,以便将项目放到"复制我"区域 - 任务将复制项目(我稍后会工作)

问题是可放置目标位于可排序列表的底部(我不想移动它),一旦发生丢弃,可排序项目就会移动到列表的底部.

我想要做的是在drop事件触发时取消此类.

你可以在这里看到我的问题(只需将"Item 1"拖到"Drop to Copy Item"区域,你就会看到排序没有被取消)

正如您所看到的,我在droppable"drop"事件中尝试了以下内容(从JQuery UI Docs建议),但它似乎不起作用......

$(this).sortable('cancel');
Run Code Online (Sandbox Code Playgroud)

我也对如何实现我正在寻找的"复制"效果的任何其他建议持开放态度.

谢谢

javascript jquery jquery-ui jquery-ui-sortable jquery-droppable

12
推荐指数
1
解决办法
9914
查看次数