Tag: asp.net mvc

ActionLink包含URL中的当前{id}

我浏览器中当前显示的页面是: http://localhost:19255/Object/Browse/1 。 此页面上的链接创建时使用: @Html.ActionLink(“…”, “Browse”, “Object”) 但生成的链接实际上是: /Object/Browse/1 我对正在发生的事情的理解是MVC看到我的路线有{id}部分,我没有提供。 所以它继续并包含当前页面的{id}部分。 很公平,但如何在没有它的情况下创建链接? 我尝试了null , new { id = null }但是都没有用。

路径控制器…未找到或未实现IController

我正在使用c#编写使用ASP.NET MVC 5的应用程序。 我需要在应用程序的右上角添加一个全局菜单。 我被告知其他SO使用ChildActionOnly属性的动作。 所以这就是我所做的。 我创建了一个像这样的BaseController public class BaseController : Controller { [ChildActionOnly] public ActionResult ClientsMenu() { using (SomeContext db = new SomeContext()) { return PartialView(db.Database.SqlQuery(“SELECT * FROM clients”).ToList()); } } } 然后我inheritance了BaseController所有控制器,就像这样 public class TasksController : BaseController { public ActionResult Index(int ClientId) { … return View(); } public ActionResult Show(int SurveyId) { … […]

用于在MVC5中模拟ConfirmEmailAsync和其他UserManager方法的接口

我正在尝试对这种控制器方法进行unit testing,该方法在当前的MVC项目中开箱即用。 [AllowAnonymous] public async Task ConfirmEmail(string userId, string code) { if (userId == null || code == null) { return View(“Error”); } var result = await UserManager.ConfirmEmailAsync(userId, code); return View(result.Succeeded ? “ConfirmEmail” : “Error”); } AccountController有一个构造函数,它将ApplicationUserManager和ApplicationSignInManager作为参数,以及与私有setter匹配的属性用于测试。 但是,我无法弄清楚如何模拟ConfirmEmailAsync方法。 您可以在Identity命名空间中模拟各种接口: var store = new Mock<IUserStore>(); store.As<IUserEmailStore>() .Setup(x => x.FindByIdAsync(“username1”)) .ReturnsAsync((ApplicationUser)null); var mockManager = new ApplicationUserManager(store.Object); AccountController […]

ASP.NET MVC网站在任何浏览器上都被重定向到本地IIS而不是IIS express

目标: 在任何浏览器上在IIS Express上本地运行ASP.NET MVC网站。 历史: 关注的项目是一个ASP.NET MVC网站,最初设置为使用启用了SSL的本地IIS。 我尝试在IIS Express上进行设置: RouteConfig.cs文件 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( name: “Default”, url: “{controller}/{action}/{id}”, defaults: new { controller = “Home”, action = “_View”, id = UrlParameter.Optional } ); } web.config中有2种重定向可能性 用于身份validation 用于error handling 问题: 虽然完成了上述设置,但站点将重定向到本地IIS( https:// localhost )而不是IIS express(例如http:// localhost / 12345或https:// localhost / 12345 )。 到目前为止尝试了什么: […]

.NET MVC自定义路由

我想知道我是否可以创建一个比控制器更高级别的路由映射。 典型的路由包括“/ controller / action / id”。 我要找的是“section / controller / action / id”或“controller / section / action / id”。 我怎样才能做到这一点?

在mvc4中的Global.asax中的会话超时重定向

我试图检测会话何时结束,然后在我的全局asax文件中完成此操作后将用户重定向到主页。 我使用下面的代码,我在这里找到 Global.asax中: protected void Session_Start() { if (Context.Session != null) { if (Context.Session.IsNewSession) { string sCookieHeader = Request.Headers[“Cookie”]; if ((null != sCookieHeader) && (sCookieHeader.IndexOf(“ASP.NET_SessionId”) >= 0)) { //intercept current route HttpContextBase currentContext = new HttpContextWrapper(HttpContext.Current); RouteData routeData = RouteTable.Routes.GetRouteData(currentContext); //Substitute route Data Token Values for the Area routeData.DataTokens[“area”] = “”; routeData.DataTokens[“UseNamespaceFallback”] = true; //substitute […]

如何将项目列表从视图传递到控制器(ASP.NET MVC 4)

我正在尝试将List 类型的多个项目传递给我的控制器,但是,当我提交数据时,它在我的控制器中显示为null。 我想要发生的是,我在视图中有一个“费用”列表,并且每个“费用”或项目旁边都是我的模型中的“已提交的布尔”属性的复选框。 当我检查项目时,我希望在数据库中更新已检查项目的属性列表Submitted和DateSubmitted 。 View中的@ Html.DisplayFor(modelItem => item.Submitted)生成复选框。 我究竟做错了什么? 这是我的观点: @model IEnumerable @{ ViewBag.Title = “Submit Expenses”; Layout = “~/Views/Shared/_Layout.cshtml”; DateTime today = DateTime.Today; string formattedDate = today.ToString(“MM/dd/yyyy”); } Submit Expenses @using (Html.BeginForm()) { @Html.AntiForgeryToken() Start Date: @Html.TextBox(“expenseDate”, formattedDate, htmlAttributes: new { @class = “form-control” }) End Date: @Html.TextBox(“expenseDate2”, formattedDate, htmlAttributes: new { @class […]

创建帮助程序以覆盖CheckboxFor

我在我正在开始的新项目中使用bootstrap 5,而不是必须在表单字段周围编写所有脚手架,我已经决定创建一个包装器来自动为我执行此操作。 我使用了textboxfor,textareafor和dropdownlist的以下语法: public static MvcHtmlString MyTextBoxFor( this HtmlHelper helper, Expression<Func> expression) { var stringbuilder = new MvcHtmlString(“” + helper.LabelFor(expression, new {@class = “col-sm-3 control-label”}) + “” + helper.TextBoxFor(expression, new {@class = “form-control”}) + “” + “”); return stringbuilder; } 然后可以如下调用: @FormHelpers.MyTextBoxFor(Html, x => x.Name) 但是,这似乎不适用于checkboxfor: Error 1 ‘System.Web.Mvc.HtmlHelper’ does not contain a definition for […]

按枚举说明排序

我首先使用EF代码编写ASP.NET MVC项目,我面临的情况是需要通过枚举描述进行排序: public partial class Item { public enum MyEnumE { [Description(“description of enum1”)] Enum1, [Description(“description of enum2”)] Enum2, … } public MyEnumE MyEnum { get; set; } } 这是Search和SortAndPaginate函数: public async Task<IPagedList> Search(ItemCriteria criteria, SortableTypeE sortName, SortOrder.TypeE sortOrder, int pageNb) { var itemFilter = GenerateFilter(criteria); var items = entities.Items.Where(itemFilter); return await SortAndPaginate(items, sortName, sortOrder, […]

ASP.NET MVC3 RAZOR:从部分视图重定向

我有两个部分视图“MyPopular”和“MyBlogs”。 并且有两个控制器 – “ArticleController.cs”和“ThePopularController.cs”。 这两个部分视图都包含按钮。 最初,它在索引视图中呈现两个局部视图。 在博客点击的post操作处理程序中,要求它重定向到“BlogHome”操作,它将返回一个简单的字符串“Blog Home”(而不是视图)。 在流行点击的post动作处理程序中,它被要求重定向到“PopularHome”动作,它将返回一个简单的字符串“Popular Home”。 但是目前,当我点击任何一个按钮时,它会呈现localhost:1988 / Article索引; 没有部分内容。 注意:即使我使用ContentResult和ActionResult,结果也是一样的。 注意:请强调我是否正在通过错误的方式来完成这么简单的任务。 我们如何纠正它以进行适当的重定向? // ArticleController public class ArticleController : Controller { public ActionResult Index() { //Index returns no model return View(); } public string BlogHome() { return “Blog Home”; } //ChildActionOnly attribute indicates that this action should not be callable directly […]