您最好的选择是搜索更新的问题,或搜索下面的答案,寻找您的MVC的特定版本,因为现在许多答案已经过时.
如果您确实找到适合您的版本的答案,请确保答案包含您正在使用的MVC版本.
(原始问题从下面开始)
这对我来说似乎有点奇怪,但就我所知,这就是你如何做到的.
我有一组对象,我希望用户选择其中一个或多个.这对我说"形式有复选框".我的对象没有任何"选择"的概念(它们是通过反序列化wcf调用形成的基本POCO).所以,我做了以下事情:
public class SampleObject{
public Guid Id {get;set;}
public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
在视图中:
<%
using (Html.BeginForm())
{
%>
<%foreach (var o in ViewData.Model) {%>
<%=Html.CheckBox(o.Id)%> <%= o.Name %>
<%}%>
<input type="submit" value="Submit" />
<%}%>
Run Code Online (Sandbox Code Playgroud)
并且,在控制器中,这是我可以看到用来检查用户检查的对象的唯一方法:
public ActionResult ThisLooksWeird(FormCollection result)
{
var winnars = from x in result.AllKeys
where result[x] != "false"
select x;
// yadda
}
Run Code Online (Sandbox Code Playgroud)
它首先是怪异的,其次,对于用户检查的那些项,FormCollection将其值列为"真假"而不仅仅是真.
显然,我错过了一些东西.我认为这是基于这样的想法构建的,即在html表单中作用的集合中的对象是使用UpdateModel()或通过ModelBinder 更新的.
但我没有为此设置对象; 这是否意味着这是唯一的方法?还有另一种方法吗?
我试图在Visual Studio 2005的ASP.NET应用程序中使用log4net.我已经声明了一个logger实例,如下所示:
Private Shared ReadOnly log As ILog = LogManager.GetLogger("")
Run Code Online (Sandbox Code Playgroud)
我试图以下列方式使用它:
If log.IsDebugEnabled Then
log.Debug("Integration Services Constructed")
End If
Run Code Online (Sandbox Code Playgroud)
这是我的配置:
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="..\\logs\\logfile.log"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
</log4net>
Run Code Online (Sandbox Code Playgroud)
不幸的是,log.IsDebugEnabled总是假的.
如何配置log4net以便我只能记录调试消息?
我每天都在为Solaris10上的C++开发做TDD.它大大减少了我花在使用调试器上的时间,但有时这是唯一的选择.
DBX非常强大,但不是那么用户友好.请注意,我说的是控制台DBX而不是用于DBX的SunStudio GUI.
您可以为dbx C++调试提供哪些最佳生产力提示?
PS.更改调试器不是一个选项.
有没有人有经验为Amazons EC2部署应用程序?我正在考虑将来这样做,并且想知道与共享主机和专用服务器托管相比的人们经历.
好的,所以我很容易承认,在持续集成方面,我是新手.
话虽这么说,我正在尝试建立一个CC.NET环境来教育自己,但是我很难找到设置自动构建部分所需的信息.
据我所知,在C#中,VS 2005和forward生成的.csproj文件是一个有效的MSBuild文件.也就是说,我已经能够使用.csproj文件将MSBuild任务集成到CC.NET中,但我有一些问题:
$(MSBuildToolsPath)\Microsoft.CSharp.targetsAfterBuild部分中,这对我来说似乎有点像黑客.所以,CC.NET人员,MSBuild人员和MbUnit人员的一些问题.
Target Name="AfterBuild"真的是添加该信息的部分吗?不应该有一Target Name="Test"节?使用VS生成的.csproj文件似乎阻止了第二个选项.我知道那里有很多东西,但我在网上找到的大部分内容都假设我对这些主题有一定程度的熟悉程度 - 除非我错了,这个东西的学习曲线不是根本就是一条曲线,它是一个阶梯函数.:)
编辑1:我更新了文本,使其更简洁,并解决了我对答案的一些挥之不去的问题.
cruisecontrol.net msbuild version-control mbunit continuous-integration
我正在构建一个客户端 - 服务器应用程序的身份验证,我收到的一些反馈是我应该将哈希计算留给服务器(它最初实现为让客户端接收哈希值,从客户端计算哈希值)输入密码,并进行比较).这似乎有道理,但我有一个问题 - 如何验证离线用户?
例如,如果我部署到没有Internet访问权限的移动设备,那么处理身份验证的最安全方法是什么?
我看到它的方式,我将不得不要么允许客户端接收的哈希+盐的任何信息,或使用一个单独的PIN /密码,并允许客户端接收的哈希+盐的那个密码.
我赞成后者,因为它似乎限制了攻击向量 - 如果移动设备受到攻击,那么整个系统的安全性(例如所有经过网络验证的部分)保持不变.
我最好的选择和考虑是什么?
我试图找出如何读取/写入C#中的扩展文件属性,例如,您可以在Windows资源管理器中看到的注释,比特率,访问日期,类别等.任何想法如何做到这一点?编辑:我主要是读/写视频文件(AVI/DIVX/...)
如何使用C#(Windows窗体)启用控件的双缓冲?
我有一个面板控件,我正在绘制内容,也是一个所有者绘制的选项卡控件.两者都有闪烁,所以如何启用双缓冲?
我正在寻找一个面向网络数学并已经过测试的Java库.没有什么特别的花哨,只需要保存ips和子网,并执行打印子网掩码或计算IP是否在给定子网内的操作.
我应该自己动手,还是已经有一个强大的库?