我知道大多数人会建议我应该使用特定于我正在使用的表单的ViewModel,但我很好奇为什么我的子对象没有在TryUpdateModel上绑定.
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>User</legend>
@Html.HiddenFor(model => model.UserId)
@Html.HiddenFor(model => model.PrimaryAddress.AddressId)
<div class="editor-label">
@Html.LabelFor(model => model.PrimaryAddress.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PrimaryAddress.FirstName)
@Html.ValidationMessageFor(model => model.PrimaryAddress.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.PrimaryAddress.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PrimaryAddress.LastName)
@Html.ValidationMessageFor(model => model.PrimaryAddress.LastName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.UserName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.IsApproved)
</div>
<div …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc entity-framework entity-framework-4.1 asp.net-mvc-3
有没有办法在打印作业期间切换打印机托盘?我被要求整理一个提货/装箱单程序。他们希望库存提货单打印在一张彩色纸上,装箱单打印在白纸上,并且他们希望对其进行正确校对(提货、包装、包装、包装、包装;提货、包装、包装、包装、盒; ...)。
我发现了一些关于设置默认托盘的其他线程,但在工作过程中没有在交替托盘上找到任何内容。也许我没有在寻找正确的东西。
不知道这是否有区别,但我们的打印机是 HP 3015n,客户端将是 XP 和 Win 7 Pro。
据我所知,在ASP.net 4.0中,URL路由已合并到Web窗体中.很高兴我能做到这样的事情:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Category", "list/{id}/{name}", "~/category.aspx");
routes.MapPageRoute("Product", "item/{id}/{name}", "~/product.aspx");
}
Run Code Online (Sandbox Code Playgroud)
但是有没有内置的方法让我将无扩展名的网址路由到他们的.aspx对手,而无需为每个文件手动添加路由?例如:
account/login => account/login.aspx
contact-us => contact-us.aspx
Run Code Online (Sandbox Code Playgroud)
谢谢
我在路线的末尾添加了以下内容作为一个包罗万象的规则,它似乎正在起作用.
routes.MapPageRoute("Default", "{*file}", "~/{file}.aspx");
Run Code Online (Sandbox Code Playgroud) 在MVC模式下使用Umbraco 4.11时获取当前节点子节点的URL的正确方法是什么?这是我试过的,它不断返回一个空白的URL:
@if (CurrentPage.Children().Count() > 0) {
<ul>
@foreach (var child in CurrentPage.Children()) {
<li><a href="@child.Url">@child.Name</a></li>
}
</ul>
}
Run Code Online (Sandbox Code Playgroud)
当这不起作用时,我采取了以下措施:
@Umbraco.NiceUrl(child.Id)
Run Code Online (Sandbox Code Playgroud)
这会返回一个URL,但它上面有.aspx扩展名.所以我的下一个黑客是......
@Umbraco.NiceUrl(child.Id).Replace(".aspx", "")
Run Code Online (Sandbox Code Playgroud)
这并不完全可怕,但我想知道我是否遗漏了什么?
我正在使用FormsAuthentication编写ASP.net MVC 5应用程序.我把所有东西都搞定了并正常使用FormsAuthentication.SetAuthCookie(user.Email, model.RememberMe).
但是,我想创建一个自定义票证,以便我可以在票证的UserData字段中存储一些额外的信息.这就是我创建票证并将其存储在cookie中的方式:
var ticket = new FormsAuthenticationTicket(1, user.Email, DateTime.Now, DateTime.Now.AddMinutes(FormsAuthentication.Timeout.Minutes), model.RememberMe, user.AuthToken);
var encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) { Domain = FormsAuthentication.CookieDomain, Path = FormsAuthentication.FormsCookiePath, HttpOnly = true, Secure = FormsAuthentication.RequireSSL };
HttpContext.Response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
这会创建一个加密的票证并将其发送到浏览器.我已经使用开发人员工具和Fiddler验证了该票证是否存在于浏览器中,并且在后续请求中将其发送回服务器.
但身份验证现在已被破坏.此外,cookie不可用于Application_AuthenticateRequest或Application_PostAuthenticateRequest事件中.当我使用调试器进行探索时,Context.Request.Cookies它不在列表中.
奇怪的是,如果我退回管道并检查它,cookie确实存在Application_BeginRequest:
void Application_BeginRequest(object sender, EventArgs e)
{
// Auth cookie exists in the collection here! Ticket decrypts successfully
HttpCookie authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie == null)
return;
var …Run Code Online (Sandbox Code Playgroud) 必须使用记事本维护一个使用VB.net 1.1的旧网站:(我有一些代码,我为一些我们的.Net 4网站写的老板男人想要移植到旧网站.找到VB.net 1.1代码的例子在For/Next块中显示使用"Continue For"跳转到下一个迭代.然而,当我在代码中尝试它时,我得到一个例外,"名称'继续'尚未声明."这应该是否可用,或者示例不正确,它是.Net 2.0的东西?
Umbraco版本= 6.0.3
我试图在宏scriptlet中做一些看似简单的东西.基本上,我想循环遍历所有不属于类别的可见子内容:
@inherits umbraco.MacroEngines.DynamicNodeContext
@{
var subs = Model.Children.Where("Visible && DocumentTypeAlias != \"Category\"");
}
<span>Count: @subs.Count()</span>
@if (subs.Any())
{
<ul>
@foreach (var sub in subs)
{
<li>
<a href="@sub.Url">@sub.Name</a>
</li>
}
</ul>
}
Run Code Online (Sandbox Code Playgroud)
如果我取出where子句的"Visible"部分,它可以正常工作(显示标记为隐藏的内容除外).我也可以通过删除"DocumentTypeAlias"自己使用"Visible",但随后会显示包括类别在内的所有可见内容.
我也尝试使用强类型查询,@Model.Content.Children.Where(x => x.IsVisible() && x.DocumentTypeAlias != "Category")但我得到一个错误,关于无法使用动态类型内容的lambda函数.
想法?
在听说NoSQL几年后,我终于开始在.Net MVC应用程序(简单博客)中使用RavenDB.启动并运行嵌入式数据库非常快速且轻松.
但是,我发现在将对象插入文档存储区后,当后续页面刷新时,它们并不总是存在.当我刷新页面时,它们会显示出来.我在某处读到这是由于陈旧的索引.
我的问题是,你应该如何在一直有插件发生的网站上使用它(例如:电子商务).这不会导致陈旧的索引和不可靠的查询结果吗?
我正在开发一个ASP.NET MVC 4具有管理面板的应用程序,其目的是提供非常基本的CMS功能.我需要的是为管理员提供使用这些布局创建新布局和新页面并使用内容填充它们的能力.
使用现有的CMS不是一个选项(不知道为什么),我从来没有必要实现这样的事情,我无法找到任何关于这个主题的教程和文章.
你能提供一些基本的逻辑,或者如何构建这样一个基本功能的好教程,它似乎是一个普遍的问题,但仍然是为这个想法工作ASP.NET MVC 4.
捎带一个非常相似的问题 ......
我需要从ViewModel生成一个表达式作为搜索谓词传递.我需要能够根据用户提供的内容包含/排除查询参数.例:IQueryable.Where
public class StoresFilter
{
public int[] Ids { get; set; }
[StringLength(150)]
public string Name { get; set; }
[StringLength(5)]
public string Abbreviation { get; set; }
[Display(Name = "Show all")]
public bool ShowAll { get; set; } = true;
public Expression<Func<Store, bool>> ToExpression()
{
List<Expression<Func<Store, bool>>> expressions = new List<Expression<Func<Store, bool>>>();
if (Ids != null && Ids.Length > 0)
{
expressions.Add(x => Ids.Contains(x.Id));
}
if (Name.HasValue())
{
expressions.Add(x => x.Name.Contains(Name)); …Run Code Online (Sandbox Code Playgroud) asp.net ×4
asp.net-mvc ×4
c# ×4
umbraco ×2
.net ×1
.net-4.0 ×1
for-loop ×1
func ×1
ienumerable ×1
iqueryable ×1
loops ×1
nosql ×1
printing ×1
ravendb ×1
razor ×1
routing ×1
url-routing ×1
vb.net ×1