小编spl*_*tto的帖子

阵列索引是否存在

我在工作中继承了一些非常难闻的代码.我希望找到最无痛的解决方案.

有没有办法检查某个任意数字是否是数组中的有效元素?

示例 - 我需要检查数组[25]是否存在.

我更喜欢这样做而不通过数组执行foreach()来找到行.

有没有办法做到这一点,还是我坚持使用foreach循环?

c# arrays indexing

75
推荐指数
5
解决办法
11万
查看次数

MVC - 使用RedirectToAction传递数据()

我想获取在MVC用户表单中输入的数据并将其显示在不同的视图中.

该类具有以下私有变量:

IList<string> _pagecontent = new List<string>();
Run Code Online (Sandbox Code Playgroud)

以下操作接受FormCollection对象,验证它,并将其作为List传递到"预览"视图:

[Authorize(Roles = "Admins")]
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateContent(FormCollection collection)
{
    if (ModelState.IsValid)
    {
        string PageToInsert = collection["PageToInsert"];
        string PageHeader = collection["PageHeader"];
        string PageBody = collection["PageBody"];

        //validate, excluded...

        _pagecontent.Add(PageToInsert);
        _pagecontent.Add(PageHeader);
        _pagecontent.Add(PageBody);

    }
    return RedirectToAction("Preview", _pagecontent);
}
Run Code Online (Sandbox Code Playgroud)

预览视图具有以下页面指令,用于传递强类型对象List:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Template.Master" Inherits="System.Web.Mvc.ViewPage<List<string>>" %>
Run Code Online (Sandbox Code Playgroud)

我希望能够使用Model对象来获取我的数据,但我不能.在接下来的行中,我得到一个error index out of bounds异常,声明索引必须是非负数且小于集合的大小:

<% if (Model[0].ToString() == "0") { %>
Run Code Online (Sandbox Code Playgroud)

并且一些奇怪的参数已经添加到URL中,因为它解析为 http://localhost:1894/Admin/Preview?Capacity=4&Count=3

所以我有两个问题:

  1. 当我调用RedirectToAction并将其传递给我的List时,为什么在视图的Model对象中无法访问它?
  2. 做正在做的事情的正确方法是什么,即将一组字符串传递给视图以便在那里显示?

c# asp.net-mvc redirecttoaction

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

以Javascript PROPER方式设置asp:label的Text属性

我在表单上有一系列文本框.当用户在这些文本框中插入数字时,会进行计算并<asp:Label>通过JavaScript更新控件以反映这些计算:

document.getElementById('<%=TotalLoans.ClientID %>').innerHTML = TotalLoans;
Run Code Online (Sandbox Code Playgroud)

这正确地更新了UI.但是,当我尝试访问代码隐藏中的值时,该Text属性为空.这是有道理的,因为我innerHTML通过JavaScript 更新了属性.

//TotalLoans.Text will always be equal to "" in this scenario
double bTotalLoans = string.IsNullOrEmpty(TotalLoans.Text) 
                   ? 0.00 
                   : Convert.ToDouble(TotalLoans.Text);
Run Code Online (Sandbox Code Playgroud)

如何更新Text的特性<asp:Label>以这样的方式,我可以阅读代码隐藏属性通过JavaScript?

更新

这是一个包含41个标签的大型表单上的一个小问题,每个标签显示用户的某些计算结果.根据FishBasketGordo的建议,我将我<asp:Label>转变为残疾人<asp:TextBox>.我正在设置新文本框的值:

    document.getElementById('<%=TotalLoans.ClientID %>').value = TotalLoans;
Run Code Online (Sandbox Code Playgroud)

同样,在代码隐藏中,值TotalLoans.Text始终等于"".


我不介意改变我的方法,但这是问题的症结所在.

我正在使用JavaScript来操纵某些控件的属性值.当点击"提交"时,我需要能够从后面的代码中访问这些被操纵的值.

我有什么建议可以解决这个问题吗?

更新2

关于@James Johnson的回答,我无法.innerText按建议使用属性检索值.我已经EnableViewState设定为真的<asp:Label>.还有其他我想念的东西吗?

我不明白为什么,当我输入文本框并提交表单时,我可以访问代码隐藏中的值,但是当我以编程方式通过JavaScript更改文本框或标签的文本时,我无法访问新值.

javascript asp.net label code-behind

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

64位机器上的nUnit异常

我有一个MVC 3.0应用程序.我的测试框架是nUnit 2.4.8.0.我在32位机器上启动了这个代码,最近开始使用64位机器.我刚刚将项目升级到.NET 4.0.

我的应用程序运行正常 - 我能够适当地从数据库中保存我的对象.问题是当我运行集成测试时.

测试失败了,并给出了我以前从未见过的例外:

NHibernate.ADOException : cannot open connection
  ----> System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
Run Code Online (Sandbox Code Playgroud)

我在网上搜索了这个异常 - 它当然是nUnit的问题,尽管有NHibernate异常(请记住,NHibernate允许我在运行应用程序时保持对象并保持对象).

我将我的nUnit程序集升级到最新版本2.5.10,并将项目中的引用更新为nUnit zip文件的'net-2.0'文件夹下的程序集.我再次运行测试,并收到相同的异常.

似乎程序集,代码和ASP.NET开发服务器之间存在某种32位与64位冲突.

我没有任何处理32位和64位问题的经验,所以我不知道堆栈溢出是否还有其他问题是相关的(我看到的那些似乎不是).我有一些想法,但没有答案:

  • 我需要一个不同的nUnit程序集吗?
  • 我是否需要更改VS2010中的解决方案平台设置?(它目前在"任何CPU"上)
  • 我是否需要更改集成测试项目的构建属性?
  • 我是否需要更改解决方案的配置设置?

不幸的是,我目前还没有32位机器来测试代码.上述任何问题是否正确解决这个问题?你能提供任何指导吗?

谢谢.

更新: 我真的希望能够使用TestDriven.NET从Visual Studio中运行测试.我不想开始使用nunit UI来运行我的测试.

更新2: 对不起,我可能不太清楚.我还没有使用TestDriven.NET,我说的是我希望使用它,但我还没有在新的x64机器上安装它.此时,我正在尝试通过单击Visual Studio IDE中的可视图标来运行测试,如下图所示:

nunit测试夹具

完成该操作后,测试失败,弹出的对话框显示以下内容:

测试失败

这是我上面引用的例外.没有引用未加载的程序集.

起初我不相信我使用的NHibernate版本(2.0.1.4000)很重要; 我这样说是因为提供程序能够在运行应用程序时从数据库返回所需的对象.但是,当我调试测试时,我发现我的提供程序中抛出了异常.挖掘一下,看来这是我的SQLite程序集的来源.但同样,这是在我运行项目时运行的同一个程序集 - 为什么在运行集成测试时它不起作用?

例外细节

nunit unit-testing 32bit-64bit

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

Javascript replace()在VS中不起作用 - 未知字符

我正在尝试使用javascript替换函数用直引号替换卷曲引号:

var EditedContent = content.replace(/“/g, '"');
Run Code Online (Sandbox Code Playgroud)

这非常适用于我已经掀起的一些概念验证html文件,但是当它在一个visual studio项目中时,它会用一个暗示"未知字符"的符号替换卷曲引号:

未知角色http://img31.imageshack.us/img31/8826/javascriptz.jpg

如何解决此问题,以便在调试时可以正确使用该应用程序?

javascript replace special-characters visual-studio-2008

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

重新打开机会时执行的CRM插件

我需要为Dynamics CRM 4.0编写一个插件,该插件在重新打开关闭的机会时执行,以便更改salesstagecode.我的问题是:

  • 当我向插件注册一个新步骤时,我应该过滤哪些属性?
  • 我应该检查实体上的哪些属性值?和
  • 我该如何查找此实体的值,以便我可以确定插件执行是否应该继续?

我通常编写异步工作流程,我编写插件的经验仍在开发中,所以我很感激可以提供任何帮助和澄清.

请参阅下面我编写的插件框架

    public void Execute(IPluginExecutionContext context)
    {
        if (context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity)
        {
            ICrmService service = context.CreateCrmService(false);

            DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties["Target"];

            if (entity.Name == EntityName.opportunity.ToString())
            {
                if (entity.Properties.Contains(/*What Property Should I Check Here?*/))
                {
                    //And what value should I be looking for in that property?

                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# dynamics-crm workflow-foundation dynamics-crm-4

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

在asp.net CheckBoxList中选择所有项目

ASP.NET和C#.

我想要一个带有"全选"项目的CheckboxList.

  • 选择此特定项目后,也将选择所有其他项目.
  • 当从该项目中删除选择时,它也将从所有其他项目中删除.
  • 无论"全选"项目的选择状态如何,选中/取消选中任何其他项目只会对该特定项目产生影响.

我正在寻找一个jquery解决方案.

这是我的代码隐藏中的数据绑定代码:

IList<Central> Centrals = new CentralProvider().GetAllCentralsAsList();
Centrals.Insert(0, new Central(){Central_ID = 999, Central_Name = "Select All"});
CentralChecks.DataSource = Centrals;
CentralChecks.DataTextField = "Central_Name";
CentralChecks.DataValueField = "Central_ID";
CentralChecks.DataBind();
Run Code Online (Sandbox Code Playgroud)

这是标记:

<div class="CentralDiv" id="CentralDiv">
    <h2>Centrals:</h2>
    <span>
        <asp:TextBox ID="CentralTextBox" runat="server" CssClass="textbox">Centrals</asp:TextBox>
        <img id="CentralArrow" src="images/down_arrow.jpg" style="margin-left: -22px; margin-bottom: -5px" />
    </span>
    <div id="CentralEffect" class="ui-widget-content">
        <asp:CheckBoxList ID="CentralChecks" runat="server" onclick="GetSelectedCentralValue();">
        </asp:CheckBoxList>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

请注意,页面上有多个复选框列表,因此任何解决方案都必须牢记这一点.

c# asp.net jquery selectall checkboxlist

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

SQL Server:选择值,在分隔符上拆分,然后更新两列

我有一个带有三个varchar列的SQL Server 2008数据库表 - Col1, Col2, Col3. Col1其中包含数据,中间有一个空格,Col2并且Col3为空.

我需要写一个查询来选择从所述数据Col1,使用所述空间作为分隔符,并插入在空间的任一侧上的数据转换成分手的每个值Col2Col3分别.

我不太清楚如何继续.这可以在SQL中完成,还是应该创建一个小程序来为我做这项工作?如果可以通过SQL完成,我会欣赏正确方向的指针.

谢谢.

sql sql-server

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

数据合同序列化不适用于所有元素

我有一个XML文件,我正在尝试序列化到一个对象.有些元素被忽略了.

我的XML文件:

<?xml version="1.0" encoding="utf-8" ?> 
<License xmlns="http://schemas.datacontract.org/2004/07/MyApp.Domain">
<Guid>7FF07F74-CD5F-4369-8FC7-9BF50274A8E8</Guid> 
<Url>http://www.gmail.com</Url> 
<ValidKey>true</ValidKey> 
<CurrentDate>3/1/2010 9:39:28 PM</CurrentDate> 
<RegistrationDate>3/8/2010 9:39:28 PM</RegistrationDate> 
<ExpirationDate>3/8/2099 9:39:28 PM</ExpirationDate> 
</License>
Run Code Online (Sandbox Code Playgroud)

我的班级定义:

[DataContract]
public class License
{
    [DataMember]
    public virtual int Id { get; set; }
    [DataMember]
    public virtual string Guid { get; set; }
    [DataMember]
    public virtual string ValidKey { get; set; }
    [DataMember]
    public virtual string Url { get; set; }
    [DataMember]
    public virtual string CurrentDate { get; set; }
    [DataMember]
    public virtual string RegistrationDate { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# xml serialization datacontractserializer

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

正则表达式:绝对url到相对url(C#)

我需要一个正则表达式来运行像下面的字符串,它将在某些条件下将绝对路径转换为相对路径.

<p>This website is <strong>really great</strong> and people love it <img alt="" src="http://localhost:1379/Content/js/fckeditor/editor/images/smiley/msn/teeth_smile.gif" /></p>
Run Code Online (Sandbox Code Playgroud)

规则:

  • 如果网址包含"/ Content /",我想获得相对路径

  • 如果url不包含"/ Content /",则它是外部文件,绝对路径应保留

Regex unfortunatley不是我的强项,这对我来说太先进了.如果有人可以提供一些技巧,我会很感激.

提前致谢.

更新: 回答评论中的问题:

  • 在应用正则表达式时,所有网址将以"http://"开头
  • 这应该应用于img和标签的src属性,而不是标签之外的文本.

c# regex url asp.net-mvc

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

接口 - 这有多大功能?

这是一个非常基本的OO问题,但我很好奇我是否已经过火了.

让我们假设以下层次结构,这是我通常会创建的示例:

IVehicle
  - IFlyable
      - IPlane
          - Plane
      - IHelicopter
          - Helicopter
  - IDrivable
      - ICar
          - Car
      - ITruck
          - Truck
Run Code Online (Sandbox Code Playgroud)

是接口IPlane,IHelicopter,ICar,和ITruck必要,否则应的类直接实现IFlyableIDriveable?我正在寻找"最佳oo做法"的答案.

oop interface class

0
推荐指数
1
解决办法
520
查看次数

用于标准化PostalCode数据的SQL

我有一个SQL Server表,其中一列存储加拿大邮政编码.有时它们的格式为H0H 0H0,其他时间则为H0H0H0或H0H-0H0.我希望能够更新所有记录以将格式标准化为H0H 0H0,但我无法弄清楚SQL.任何帮助,将不胜感激.

sql sql-server

0
推荐指数
1
解决办法
3316
查看次数

数据绑定转发器到List <T> - 找不到T的属性?

我有一个基本的中继器:

<asp:Repeater id="BlogDisplay" runat="server">
    <HeaderTemplate>
        <table>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td valign="top" align="left" style="font-weight:bold; padding-left:3px;">
                <%# DataBinder.Eval(Container.DataItem, "Title")%>
            </td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>

</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

当我执行代码时,我得到一个异常: DataBinding: 'DocumentWebParts.BlogPostLost.BlogItem' does not contain a property with the name 'Title'.

这让我心烦意乱

所以你可能认为我的BlogItem对象没有Title属性 - 但事实并非如此!

public class BlogItem
{
    public int Id;
    public string Body;
    public string Title;
    public string Author;
    public DateTime Published;
}
Run Code Online (Sandbox Code Playgroud)

并且该属性肯定正在设置 - 抛出一个断点显示所有值都已设置.

BlogItems = new List<BlogItem>();
SPListItem item;
foreach (SPListItem i in myItems)
            {
                //off-topic code hidden

                BlogItem …
Run Code Online (Sandbox Code Playgroud)

asp.net data-binding repeater

0
推荐指数
1
解决办法
1081
查看次数