在 ASP.NET MVC 5 Web 应用程序中,有一个 RouteConfig 类注册许多路由。到目前为止,在我看到的所有示例中,只有“默认”路由具有非空名称。URL 模式和默认路由值似乎足以将任何 URL 正确关联到控制器和要执行的操作。那么,命名路线有什么好处吗?用于调试或记录?只是为了自我记录代码?
例如:
public class RouteConfig
{
public static void RegisterRoutes( RouteCollection routes )
{
routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );
// Most pages.
routes.MapRoute( name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "home", action = "index", id = UrlParameter.Optional }
// A special page.
// Should the route have a name?
routes.MapRoute( name: "",
url: "special",
defaults: new { controller = "special", action = "index", HttpVerbs = HttpVerbs.Get } );
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下代码,我认为将向我展示我的模型中的每个错误:
@if (!ViewData.ModelState.IsValid)
{
<ul>
@foreach (string key in ViewData.ModelState.Keys)
{
@foreach (var error in ViewData.ModelState[key].Errors)
{
<li>@error.ErrorMessage</li>
}
}
</ul>
}
Run Code Online (Sandbox Code Playgroud)
代码是嵌入在网页内的C#.有人能告诉我如何报告第一条消息并将其报告在一个<span>.
我一直在阅读不少的东西和鲍勃......
我只是想确保无法通过字符串轻松获取查询参数.
所以我们说URL是:
www.example.com?sort=hi
Run Code Online (Sandbox Code Playgroud)
我不能打电话
@SomeMethodIDoNotKnow.GetQuery("sort")
Run Code Online (Sandbox Code Playgroud)
例如在PHP中你得到$_GET["sort"]......
我试过@Request.QueryString["sort"]但它需要一个int :(
我一直在涂鸦和阅读,只是想确保我采取的方法是正确的.我正在使用MVC5和EF,实现存储库和工作单元模式.
EntityModel -> <- SomeRepository
SomeRepository -> <- SomeController
SomeController -> SomeViewModel
SomeViewModel -> SomeView
SomeView -> SomeController
SomeController -> <- SomeRepository
etc ..
Run Code Online (Sandbox Code Playgroud)
在控制器中,我计划使用类似AutoMapper的东西将ViewModel映射到EntityModel(反之亦然),然后可以将其传递到我的存储库/视图.
此外,通过这种方法,我不能100%确定我的业务逻辑应该去哪里.例如,如果我有一个产品的EntityModel并且我想添加一个GetAssociatedProducts方法,这是否会违反EntityModel或者是否应该引入另一个层,因此EntityModel只是一个简单的数据库映射类?
ViewModel应该包含任何逻辑吗?即创建一个Dictionary根据EntityModel的值填充视图的下拉列表?
我试图避免与刚开始编码相关的问题,而不考虑这个问题的原因是什么.
注意:我也在实现IoC,Autofac但我不认为这是相关的(以防万一).
我试图在我现有的SQL Server 2008数据库上创建成员资格表,并使用它而不是在Visual Studio中为我创建的默认数据库,但在注册帐户时收到错误.有没有办法像之前的aspnet_regsql一样手动创建表?
错误:实体类型ApplicationUser不是当前上下文的模型的一部分
我想出了答案.applicationUser不喜欢使用数据库第一种方法创建的连接字符串.您需要使用标准连接字符串.
有许多为web.config中的所有视图添加using语句以用于先前版本的示例,但我没有找到一个用于MVC 5.
有人能举个例子吗?
我已经创建了mvc5应用程序(带有sql server和实体框架的web UI)正在按预期工作,现在我想在azure中部署它,它最简单的方法是什么?
目前应用程序使用SQL DB如何更改它以使用azure sql Db,有哪些步骤...
即时通讯使用VS2013 premium for web
谢谢!
我正在实现一个asp.net mvc5应用程序,并且在post操作和查询字符串参数方面存在问题.
我的页面网址是 http://localhost/site/person/edit?personId=20
[HttpGet]
public ActionResult Edit(int personID)
{
// ....
return View(person);
}
Run Code Online (Sandbox Code Playgroud)
在此页面中包含提交按钮,它将执行post方法.在post方法中,如果Model.Isvalid得到false,我将返回带有Model的视图.
[HttpPost]
public ActionResult Edit(Person person)
{
if (ModelState.IsValid)
{
//....
return RedirectToAction("Index", "Dashboard", new { area = "" });
}
else
{
return View(person);
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常.但问题是,一旦Model.IsValid变为false,它将进入视图但没有查询字符串参数.然后URL就像http://localhost/site/person/edit
有没有办法获取带有查询字符串参数的URL.
<div class="form-group">
@Html.LabelFor(model => model.CourseStatus, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("statusList", String.Empty, new { @disbled = disabled})
@Html.ValidationMessageFor(model => model.CourseStatus)
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我是ASP.NET MVC5和RAZOR的新手.我只想创建一个禁用的下拉列表.我已经创建了SelectList名称"statusList".通过它我试图调用状态.但是我想让它变得笨拙并默认为一个状态
我的问题是相当简单的,如何限制传递给View的列?
通常在编写SQL时,SELECT语句将指定所需的列以及所需的表,因为到目前为止,我对Linq的使用涉及到这样的查询:
var navigationModel = (from m in db.Navigations where (m.Main == true) orderby m.Position select m);
Run Code Online (Sandbox Code Playgroud)
因此,这将显示以下类中标识的所有列:
public partial class Navigation
{
public int Id { get; set; }
public string Title { get; set; }
public Nullable<int> Position { get; set; }
public bool Main { get; set; }
public string Action { get; set; }
public string Controller { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
因此,上面的Linq查询效率不高,因为我只想要列Title,Action和Controller.
有人可以告诉我如何过滤传递给视图的数据吗?
任何帮助将非常感激 :-)
asp.net-mvc-5 ×10
c# ×6
asp.net-mvc ×4
razor ×2
asp.net ×1
azure ×1
javascript ×1
linq ×1
post ×1
unit-of-work ×1
url ×1