小编dco*_*led的帖子

如何使用Html.TextBoxFor设置默认值?

简单的问题是,如果您使用ASP.NET MVC Framework 1中的Html Helper,则很容易在文本框上设置默认值,因为存在过载Html.TextBox(string name, object value).当我尝试使用Html.TextBoxFor方法时,我的第一个猜测是尝试以下哪些不起作用:

<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>
Run Code Online (Sandbox Code Playgroud)

我现在应该坚持使用Html.TextBox(字符串,对象)吗?

c# html-helper asp.net-mvc-2

195
推荐指数
11
解决办法
26万
查看次数

Eclipse WTP不发布Maven依赖项

我正在尝试使用Eclipse Indigo和Tomcat服务器建立一个基本的hello world项目.我用一个简单的servlet创建了一个动态项目.测试了servlet并且工作正常.然后我启用了Maven支持并添加了logback到我的pom.我在servlet的doGet方法中放了一个日志语句.当运行servlet时,它抱怨它找不到任何绑定,因为没有将logback jar复制到Eclipse tomcat实例中.我希望在这里的某处发现罐子:

${workspace}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\

如何让Eclipse正常使用WTP/Maven?我也试过安装m2e-wtp连接器没有区别.

eclipse tomcat m2eclipse eclipse-wtp maven

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

使用实体框架自动编号

我想遍历一组对象并将它们全部添加到表中.目标表具有自动增量字段.如果我添加一个对象没有问题.如果我添加两个主键为零的对象,则实体框架失败.我可以手动指定主键,但尝试EF的重点是让生活变得更轻松而不是更复杂.这是代码,接收的异常如下.

foreach (Contact contact in contacts)
{               
    Instructor instructor = InstructorFromContact(contact);             
    context.AddToInstructors(instructor);               
}

try
{                   
    context.SaveChanges();                  
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
Run Code Online (Sandbox Code Playgroud)

错误是:

System.InvalidOperationException:已成功提交对数据库的更改,但更新对象上下文时发生错误.ObjectContext可能处于不一致状态.内部异常消息:AcceptChanges无法继续,因为对象的键值与ObjectStateManager中的另一个对象冲突.在调用AcceptChanges之前,请确保键值是唯一的.在System.Data.Objects.ObjectContext.SaveChanges(SaveOptions选项)
的System.Data.Objects.ObjectContext.SaveChanges()在DataMigration.Program.CopyInstructors()在C:\ Projects\DataMigration\Program.cs:第52行

c# entity-framework exception auto-increment

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

C#枚举字符串自动转换?

是否可以让编译器自动将我的Enum值转换为字符串,这样我就可以避免每次都显式调用ToString方法.这是我想做的一个例子:

enum Rank { A, B, C }

Rank myRank = Rank.A;
string myString = Rank.A; // Error: Cannot implicitly convert type 'Rank' to 'string'
string myString2 = Rank.A.ToString(); // OK: but is extra work
Run Code Online (Sandbox Code Playgroud)

c# enums implicit-cast implicit-conversion

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

将DataAnnotations与实体框架一起使用

我已经使用VS2010的Entity Framework创建了一个包含属性,firstName,lastName和email的简单person类.如果我想附加DataAnnotations,就像在这篇博客文章中所做的那样,我有一个小问题,因为我的人类是动态生成的.我可以直接编辑动态生成的代码,但每当我必须更新我的模型时,我的所有验证代码都将被删除.

第一直觉是创建一个局部类并尝试附加注释,但它抱怨我正在尝试重新定义属性.我不确定你是否可以在C#中使用C++中的函数声明来进行属性声明.如果可能,那可能就是答案.这是我尝试过的片段:

namespace PersonWeb.Models
{
  public partial class Person
  {
    [RegularExpression(@"(\w|\.)+@(\w|\.)+", ErrorMessage = "Email is invalid")]
    public string Email { get; set; } 
    /* ERROR: The type 'Person' already contains a definition for 'Email' */
  }
}
Run Code Online (Sandbox Code Playgroud)

c# validation entity-framework asp.net-mvc-2

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

无法找到EntityType Exception的映射和元数​​据信息

我正在尝试使用Microsoft Entity Framework的ASP.NET MVC Framework 2,当我尝试保存新记录时,我收到此错误:

无法找到EntityType'WebUI.Controllers.PersonViewModel'的映射和元数​​据信息

My Entity Framework容器存储Person类型的记录,我的视图是使用派生自Person的PersonViewModel强类型的.记录将保存正确,直到我尝试使用派生的视图模型类.任何人都可以解释为什么在推导我的视图模型时元数据类不起作用?我希望能够使用强类型模型并使用数据注释(元数据),而无需混合我的存储逻辑(EF类)和表示逻辑(视图).

// Rest of the Person class is autogenerated by the EF
[MetadataType(typeof(Person.Metadata))]
public partial class Person
{
  public sealed class Metadata
  {
    [DisplayName("First Name")]
    [Required(ErrorMessage = "Field [First Name] is required")]
    public object FirstName { get; set; }

    [DisplayName("Middle Name")]            
    public object MiddleName { get; set; }

    [DisplayName("Last Name")]
    [Required(ErrorMessage = "Field [Last Name] is required")]
    public object LastName { get; set; }
  } …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework metadata viewmodel asp.net-mvc-2

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

如何将引用的参数从变量传递给bash脚本

我尝试在变量中构建一组参数并将其传递给脚本,但行为与我的预期不同.

test.sh

#!/bin/bash

for var in "$@"; do
  echo "$var"
done
Run Code Online (Sandbox Code Playgroud)

输入

usr@host$ ARGS="-a \"arg one\" -b \"arg two\""
usr@host$ ./test.sh $ARGS
Run Code Online (Sandbox Code Playgroud)

产量

-a
"arg
one"
-b
"arg
two"
Run Code Online (Sandbox Code Playgroud)

预期

-a
arg one
-b
arg two
Run Code Online (Sandbox Code Playgroud)

请注意,如果将引用的参数直接传递给它运行的脚本.我也可以用eval解决这个问题,但我想了解为什么第一种方法失败了.

解决方法

ARGS="./test.sh -a "arg one" -b "arg two""
eval $ARGS
Run Code Online (Sandbox Code Playgroud)

bash quotes escaping command-line-arguments

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

如何将 JXLS 从版本 1 迁移到版本 2

JXLS 2 不向后兼容版本 1。没有升级说明,虽然我可以使用版本 2,但我遇到了两个问题。

  • 版本 1 不需要使用注释标签,但现在我无法在没有它们的情况下生成输出。

  • Java 代码必须指定在哪个工作表位置写入结果,在版本 1 中,输出写入在模板之上,不需要在 Excel 和 Java 代码中重复模板设置。

如果我找不到解决这两个问题的方法,我将不得不更改每个模板以使用注释。但更糟糕的是,我还必须让我的 java 代码了解模板工作表布局。我不明白为什么这是默认行为。有没有办法让版本 2 的行为更像版本 1?

java excel jxls

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

Kotlin 将 List&lt;Pair&lt;K, Collection&lt;V&gt;&gt;&gt; 转换为 Multimap

我正在寻找一种转换成对列表的惯用方法,其中Pair.first是键,Pair.second是值列表。这种过程方法有效,但我希望找到一种更惯用的方法,不需要直接创建可变列表。

val pairs: Pair<String, List<Int>>

val res = mutableMapOf<String, List<Int>>()
pairs.forEach {
    res.getOrPut(it.first, ::mutableListOf).addAll(it.second)
}
Run Code Online (Sandbox Code Playgroud)

这段代码可以封装在扩展函数中,如下所示,但它看起来不太通用:

fun <K, V> List<Pair<K, Collection<V>>>.toMultimap(): Map<K, List<V>> {
    var res = mutableMapOf<K, MutableList<V>>()
    forEach {
        res.getOrPut(it.first, ::mutableListOf).addAll(it.second)
    }
    return res
}
Run Code Online (Sandbox Code Playgroud)

使用pairs.toMap不起作用,因为它会使用“最后获胜”方法覆盖地图键。 groupBy工作很接近,它在列表结构的列表中创建值的键。

val pairs2 = listOf(
    Pair("a", listOf(1, 2, 3)),
    Pair("b", listOf(6, 7)),
    Pair("a", listOf(4, 5)),
    Pair("b", listOf(8, 9)),
)

val res = pairs2.groupBy({ it.first }, { it.second })
println(res)
Run Code Online (Sandbox Code Playgroud)

{a=[[1, 2, 3], [4, 5]], b=[[6, …

key-value multimap kotlin

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

为REST样式URL配置DispatcherServlet

我正在尝试学习Spring MVC基础知识,并解决URL被解析为控制器的问题.我正在使用本教程作为跳板.我可以在tomcat下运行它并且url /context/welcome.htm解析为注释为的控制器:

@Controller
@RequestMapping("/welcome")
public class HelloWorldController
Run Code Online (Sandbox Code Playgroud)

使用配置web.xml

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我希望能够键入/ context/welcome并解析HelloWorldController,但这不起作用.我已经尝试设置*但这会导致servlet无法加载.如果有人可以解释为什么这个url模式无效,以及如何配置此控制器以处理所有请求,例如/ welcome和/ welcome,而不仅仅是那些以*.htm结尾的请求,我们将不胜感激.在ASP.NET MVC中,提供了一个路由页面来调试此类控制器映射问题.使用Spring的最佳方法是什么?

jsp spring-mvc spring-annotations

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

使用 BASH 更新通过引用传递的数组

我想编写一个函数,该函数采用数组变量名称并更新内容。例如:

ARRAY1=("test 1" "test 2" "test 3")
toUpper ARRAY1

for arg in "${ARRAY1[@]}"; do
  echo "arg=$arg"
done

# output
arg=TEST 1
arg=TEST 2
arg=TEST 3
Run Code Online (Sandbox Code Playgroud)

我有一个粗略的尝试,这需要输入数组的副本。使用间接引用,我能够创建输入变量的副本。数组的副本用于获取元素的计数。如果有更好的方法来做到这一点,请告诉我。

function toUpper() {
  local ARRAY_NAME=$1
  local ARRAY_REF="$ARRAY_NAME[@]"
  # use an indirect reference to copy the array so we can get the count
  declare -a ARRAY=("${!ARRAY_REF}")

  local COUNT=${#ARRAY[@]}

  for ((i=0; i<$COUNT; i++)); do
    local VAL="${ARRAY[$i]}"
    VAL=$(echo $VAL | tr [:lower:] [:upper:])
    echo "ARRAY[$i]=\"$VAL\""
    eval "$ARRAY_NAME[$i]=\"$VAL\""
  done
}

ARRAY1=( "test" "test 1" "test 3" )

toUpper …
Run Code Online (Sandbox Code Playgroud)

arrays bash pass-by-reference indirection

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