我以前在预览3中可以执行以下操作
<%=Html.BuildUrlFromExpression<AController>(c => c.AnAction(par1, par2)%>
Run Code Online (Sandbox Code Playgroud)
我应该如何使用MVC Beta以强类型方式创建网址?到目前为止我发现的唯一的事情是
<%= Html.ActionLink("aName", "ActionName", "ControllerName")%>
Run Code Online (Sandbox Code Playgroud)
这当然不是强类型的.
如果你查看我之前的问题,你可能已经注意到我没有得到SelectList和Html.DropDown().我觉得这很吸引人,我似乎是唯一一个这样的人.所以也许我应该尝试改变我的心态,或者也许有些事我不知道会清除这一切.我真的很喜欢整个MVC框架,但SelectList并不想让我满意.所以这是我的清单:
的SelectList
Html.DropDownList()
在ppl建议我自己编写之前:
由于这将与MVC产品一起提供,我宁愿对基本控件进行正式支持,然后自行推出并拥有随之而来的所有麻烦.
我的母版页在head标签中有一个contentplaceholder.
因为我希望我的页面标题代表当前页面的功能,并且因为我希望用用户的语言翻译标题,所以我在页面的head的contentplaceholder中添加了一个标题标签.除了现在出现第二个空的标题标签,当然无效之外,所有这些都很快乐.
任何想法如何解决这个问题?
这个问题是从分拆这个问题.我的询问是双重的,但由于两者都是相关的,我认为将它们放在一起是个好主意.
- 编辑 -
我将给出一个我想要的查询的需求示例:
假设我有5个字段:
所有字段都是可选字段,最后一个字段应搜索所有其他字段.我查看每个字段,看看它是否是IsNullOrEmpty().如果不是,我想附加我的查询的一部分,以便添加相关的搜索部分.
名字和姓氏应该是完全匹配,并且比其他字段具有更多权重.年龄是一个字符串,应该完全匹配.地址可以按顺序变化.一切也可以按顺序变化.
我该怎么办呢?
string q = "m";
Query query = new QueryParser("company", new StandardAnalyzer()).Parse(q+"*");
Run Code Online (Sandbox Code Playgroud)
将导致查询成为prefixQuery:company:a*
我仍然会得到像"舰队非洲"这样的结果,很明显A不是一开始就给我带来了不良后果.
Query query = new TermQuery(new Term("company", q+"*"));
Run Code Online (Sandbox Code Playgroud)
将导致查询成为termQuery:company:a*并且不返回任何结果.可能是因为它将查询解释为完全匹配,并且我的值都不是"a*"字面值.
Query query = new WildcardQuery(new Term("company", q+"*"));
Run Code Online (Sandbox Code Playgroud)
将返回与prefixquery相同的结果;
我究竟做错了什么?
我有一组字符串(~80 000)我只能通过hits.Doc(int).Get("fieldName")方法顺序访问.
List<string> idStrings = new List<string>();
int count = hits.Length();
for (int i = 0; i < count; i++)
{
string idString = hits.Doc(i).Get("id");
if (!idStrings.Contains(idString))
idStrings.Add(idString);
}
Run Code Online (Sandbox Code Playgroud)
稍后的字符串必须是int.TryParse()'d.我认为应该有更快的方法来做到这一点.有什么建议?
在日常程序中,我甚至不会考虑针对接口而不是实现编码的可能性能损失.优势大大超过了成本.所以请不要提供关于良好OOP的通用建议.
尽管如此,在这篇文章中,XNA(游戏)平台的设计者给出了他的主要论点,即没有设计他的框架的核心类来对抗界面,这意味着性能受到打击.看到它是在游戏开发的背景下,每个fps可能都很重要,我认为这是一个有效的问题要问自己.
有人有任何统计数据吗?我没有看到测试/测量这个的好方法,因为我不知道这个游戏(图形)对象应该记住什么.
目前HashSet<T>,允许您自己定义相等比较的HashSet<T>(IEqualityComparer<T> comparer)构造函数是构造函数.我想将此EqualityComparer定义为lambda.
我发现这个博客帖子已经创建了一个类,允许你通过lambda生成你的比较器,然后使用extention方法隐藏这个类的构造,例如一个Except().
现在我想用构造函数做同样的事情.是否可以通过扩展方法创建构造函数?还是有另一种方式我可以以某种方式创建一个HashSet<T>(Func<T,T,int> comparer)?
--UPDATE--
为了清楚起见,这是我所要完成的徒手版本的一个片段:
HashSet<FileInfo> resultFiles = new HashSet<FileInfo>(
srcPath.GetFiles(),
new LambdaComparer<FileInfo>(
(f1, f2) => f1.Name.SubString(10).Equals(f2.Name.SubString(10))));
Run Code Online (Sandbox Code Playgroud)
或更理想的
HashSet<FileInfo> resultFiles = new HashSet<FileInfo>(
srcPath.GetFiles(),
(f1, f2) => f1.Name.SubString(10).Equals(f2.Name.SubString(10)));
Run Code Online (Sandbox Code Playgroud) 在我不断追求减少的时候,我正在检查mvc Turbine做IoC肮脏的工作.
我正在使用mvc Turbine书呆子晚餐的例子作为领导,到目前为止事情看起来相当合乎逻辑.虽然我在这里指的是涡轮机项目,但我猜测它背后的哲学是一些普遍的模式安全的一些阅读和罕见的播客,我是IoC概念的新手,我有几个问题.
到目前为止,我为每个要注册的IRepository都有一个IServiceRegistration条目
例如:
public class UserRepositoryRegistration : IServiceRegistration
{
public void Register(IServiceLocator locator)
{
locator.Register<IUserRepository, UserRepository>();
}
}
Run Code Online (Sandbox Code Playgroud)
IUserRepository的具体实现需要一些配置.类似于连接字符串的东西,或者在这种情况下是要使用的db4o文件的路径.
我应该在哪里以及向谁提供这些信息?
好的,我找不到答案:
<%: Html.ActionLink("Click Here", "Action", null, new {class="myClass"})%>
Run Code Online (Sandbox Code Playgroud)
我想设置生成的元素的CSS类属性.
显然,C#不允许我使用"class"作为对象成员的名字.
我该怎么办?
c# ×4
.net ×3
asp.net-mvc ×3
lucene.net ×2
asp.net ×1
html-helper ×1
interface ×1
lambda ×1
lucene ×1
oop ×1
optimization ×1
performance ×1
routing ×1
selectlist ×1
startswith ×1
title ×1