我正在使用ASP.Net MVC3,更简单的方法来使用客户端验证将启用jquery.validate.unobtrusive.对于那些来自服务器的东西,一切正常.
但是当我尝试用javascript注入一些新的"输入"时,我知道我需要调用$.validator.unobtrusive.parse()来重新绑定验证.但是,所有这些动态注入的字段都不起作用.
更糟糕的是,我尝试手动绑定使用jquery.validate它也无法正常工作.有什么想法吗?
有谁知道如何在MVC 3中启用gzip压缩?我正在使用IIS7.
Google Chrome Audit的结果:
- 启用gzip压缩(4)
- 使用gzip压缩以下资源可以将传输大小减少大约三分之二(~92.23KB):
- / mydomain /可以节省~1.53KB
- jquery-1.4.4.min.js可以节省~51.35KB
- Cufon.js可以节省~11.89KB
- Futura.js可以节省~27.46KB
使用RazorViewEngine,我可以这样做:
if (somecondition) {
<div> some stuff </div>
}
Run Code Online (Sandbox Code Playgroud)
但我似乎无法做到这一点(Razor感到困惑):
if (somecondition) {
<div>
}
if (someothercondition) {
</div>
}
Run Code Online (Sandbox Code Playgroud)
我有一种情况需要将我的开始和结束html标签放在不同的代码块中 - 我怎样才能在Razor中执行此操作?
变量strCSSClass通常具有值,但有时为空.
我不想在这个输入元素的HTML中包含一个空的class ="",这意味着如果strCSSClass为空,我根本不需要class =属性.
以下是执行条件HTML属性的一种方法:
<input type="text" id="@strElementID" @(CSSClass.IsEmpty() ? "" : "class=" + strCSSClass) />
Run Code Online (Sandbox Code Playgroud)
有更优雅的方式吗?特别是我可以遵循与元素的其他部分使用相同的语法:class ="@ strCSSClass"?
我有一个剃刀视图,我在一个'if'语句中添加了一个删除按钮,当在浏览器中呈现视图时,它在删除按钮旁边显示"System.Web.Mvc.Html.MvcForm".
我怎么摆脱它?
这是代码:
<div id="deletestatusupdate">
@if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
{
@Html.BeginForm("deleteupdate", "home")
@Html.Hidden("returnUrl", Request.Url.ToString())
<button name="id" value="@update.StatusUpdateId">Delete</button>
}
</div>
Run Code Online (Sandbox Code Playgroud)
以下是它在渲染的Razor视图中的显示方式:
System.Web.Mvc.Html.MvcForm [删除按钮]
假装[删除按钮]是一个实际的按钮,不喜欢拍摄屏幕.
谢谢您的帮助.
我正在尝试与Twitter @Anywhere API一起输出ASP.NET MVC3中的一些Twitter句柄,我无法弄清楚如何在Razor视图中实际转义"@"符号.
有谁知道在Razor中转义"@"字符的语法是什么?
我尝试过使用<text></text>,导致JIT错误.
我正在做一个ASP.NET MVC 3 Web服务,我一直在间歇性地得到这个例外.
堆栈跟踪:
Server Error in '/' Application.
A route named 'ListTables' is already in the route collection. Route names must be unique.
Parameter name: name
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: A route named 'ListTables' is already in the route collection. Route names must be unique.
Parameter name: name …Run Code Online (Sandbox Code Playgroud) 我的ASP.NET MVC 3项目遇到以下错误:
找到了多个匹配名为"Home"的控制器的类型.如果为此请求提供服务的路由('Home/{action}/{id}')未指定名称空间来搜索与请求匹配的控制器,则会发生这种情况.如果是这种情况,请通过调用带有'namespaces'参数的'MapRoute'方法的重载来注册此路由.
对'Home'的请求找到了以下匹配的控制器:MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController
我的默认控制器文件夹中有一个HomeController,类名为MyCompany.MyProject.WebMvc.Controllers.HomeController.
我的global.asax中的RegisterRoutes方法如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个名为Company的区域,在该区域的默认控制器文件夹中有一个HomeController,类名为MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController.
CompanyAreaRegistration文件中的RegisterArea方法如下所示:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
这就是我在本文开头突出显示的错误.我正在努力拼凑其他各种帖子的解决方案,没有运气.
是否有可能在默认控制器文件夹中有一个HomeController,然后在每个区域有一个?如果是这样,我是否需要对我的配置文件进行更改(假设我这样做)以使其工作?
任何帮助将非常感激!
是否可以在使用Html.TextBoxFor时覆盖name属性?
我试过没有成功.我需要使用TextBoxFor来使客户端验证工作,但是由于我不会进入的原因,我需要文本框的名称与生成的文本框的名称不同.
我尝试过以下方法:
@Html.TextBoxFor(x => x.Data, new { name = Model.Key + "_Data", id = Model.Key + "_Data" })
Run Code Online (Sandbox Code Playgroud)
哪个适用于ID但不适用于名称.这可能吗?
更新:查看TextBoxFor的代码.它看起来并不简单.希望有人可以证明我错了.
我的动作方法中有以下内容:
if (!ModelState.IsValid)
return View(vm);
Run Code Online (Sandbox Code Playgroud)
在视图中,如果模型状态无效,我希望不提供允许删除的提交密钥.有没有办法可以做到这一点?视图中是否有模型状态?
更新:我根据给出的答案实现了这个:
<div class="adm_td0" style=" padding: 0;">
@if (ViewData.ModelState.IsValid) {
<input type='submit' value='Delete' name='SubmitAction' />
}
<input type='submit' value='Cancel' name='SubmitAction' />
</div>
Run Code Online (Sandbox Code Playgroud) asp.net-mvc-3 ×10
razor ×6
asp.net-mvc ×3
asp.net ×2
c# ×1
compression ×1
escaping ×1
gzip ×1
html ×1
html-helper ×1
iis ×1