Questions tagged «asp.net-mvc»

ASP.NET MVC框架是一个开源Web应用程序框架和工具,可实现针对Web应用程序量身定制并基于ASP.NET技术基础的模型-视图-控制器(MVC)模式版本。

4
如何将HttpRequest转换为HttpRequestBase对象?
我的问题与此相反: 如何将HttpRequestBase转换为HttpRequest对象? 在我的ASP.NET MVC应用程序中,我有一种方法被许多接收HttpRequestBase作为参数的控制器使用。 现在,我必须从另一个方法(不是动作(它是nhibernate拦截器))中调用该方法。在第二种方法中,我可以访问HttpContext.Current.Request,即HttpRequest,并且无法将其强制转换为HttpRequestBase(由于命名原因,我认为它是可能的)。 有人知道这门课有什么关系吗,我该如何解决我的问题?谢谢。

2
ASP.NET MVC 3 Razor递归功能
好的,所以我想显示一个包含列表列表的列表... 我无法知道要显示多少个级别,因此我认为这是我打破旧的递归例程的地方。 我在确切地如何解决这个问题上遇到了麻烦。 这是我到目前为止(鉴于-简化): @foreach(MyObject item in @Model.ListOfObjects){ <div> @item.Title </div> //Call recursive function? } 现在,这些对象中的每一个也都有一个List <MyObject>。我想显示此div以下的每个级别,例如每个级别都有一个缩进标签。 我本来想在这里使用Razor函数,但是在构建它时需要一些帮助。这是我的想法: @functions{ public static void ShowSubItems(MyObject _object){ if(_object.ListOfObjects.Count>0){ foreach(MyObject subItem in _object.listOfObjects){ // Show subItem in HTML ShowSubItems(subItem); } } } } 但是如您所见,我显然需要一些帮助:)

5
ASP.NET MVC获取文本框输入值
我有一个文本框输入和一些单选按钮。例如,我的文本框输入HTML如下所示: <input type="text" name="IP" id="IP" /> 用户单击网页上的按钮后,我想将数据传递到控制器: <input type="button" name="Add" value="@Resource.ButtonTitleAdd" onclick="location.href='@Url.Action("Add", "Configure", new { ipValue =@[ValueOfTextBox], TypeId = 1 })'"/> 也许这很琐碎,但我的问题是我不知道如何获取文本框值并将其传递给控制器​​。如何读取文本框值并将其传递给控制器ipValue=@[ValueOfTextBox]?


9
在ASP.NET MVC中重定向未经授权的控制器
我在ASP.NET MVC中有一个控制器,但仅限于管理员角色: [Authorize(Roles = "Admin")] public class TestController : Controller { ... 如果没有管理员角色的用户导航到该控制器,则会看到空白屏幕。 我想做的就是将他们重定向到View,上面写着“您必须具有管理员角色才能访问此资源。” 我想到的一种方法是检查IsUserInRole()上的每个操作方法,如果不起作用,则返回此信息视图。但是,我必须将其放在每个操作中,这会破坏DRY原理,并且维护起来很麻烦。

10
添加一个CSS类以使用@ Html.DropDownList()进行选择
经过多年的网络表单建设,我正在构建我的第一个MVC应用程序,由于某种原因,我无法完成这项工作: @Html.DropDownList("PriorityID", String.Empty, new {@class="textbox"} ) 错误信息: System.Web.Mvc.HtmlHelper<SPDR.Models.Bug>'不包含的定义 DropDownList最佳扩展方法重载System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, object)包含一些无效的参数 任何帮助,不胜感激!

3
为什么从Razor View接收POST请求时,我得到的是null而不是空字符串?
我以前没有值时会收到一个空字符串: [HttpPost] public ActionResult Add(string text) { // text is "" when there's no value provided by user } 但是现在我通过一个模型 [HttpPost] public ActionResult Add(SomeModel Model) { // model.Text is null when there's no value provided by user } 所以我必须使用?? ""运算符。 为什么会这样呢?

21
新的Asp.Net MVC5项目产生一个无限循环来登录页面
我正在用Visual Studio 2013创建一个全新的项目,我选择Asp.Net MVC和框架4.5.1创建了项目,然后,除了F5以外,我什么也不做来启动默认网页。不幸的是,它会产生一个到登录页面的重定向,该页面也正在重定向到登录页面。这是我在浏览器中拥有的url的简短版本: http://localhost:5285/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%2525252FLogin%2525253FReturnUrl%2525253D%252525252FAccount%252525252FLogin%252525253FReturnUrl%252525253D%25252525252FAccount%25252525252FLogin%25252525253FReturnUrl%25252525253D%2525252525252FAccount%2525252525252FLogin%2525252525253FReturnUrl%2525252525253D%252525252525 我在事件查看器中没有任何错误。但是在屏幕上我看到了: “ HTTP错误404.15-找不到请求过滤模块被配置为在查询字符串太长的情况下拒绝请求。” 该网站使用IIS Express中的默认设置运行。我该如何解决这个问题?我猜我的Visual Studio 2013有问题吗? 编辑 如果我创建了一个全新的网站并将其托管在IIS中,那么它将起作用。但是,如果我创建了一个新网站(不进行任何修改)并且只是点击播放(默认情况下将启动IIS Express),则不会。 编辑2 我已经删除了Documents \ IISExpress \ config \ applicationhost.config中的每个网站。我重新编译了所有内容,并创建了以下条目: <siteDefaults> <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" /> <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> </siteDefaults> <applicationDefaults applicationPool="Clr4IntegratedAppPool" /> <virtualDirectoryDefaults allowSubDirConfig="true" /> </sites> IIS Express仍然出现错误,而不是IIS。

9
log4net将在哪里创建此日志文件?
当我将文件值设置logs\log-file.txt为时,它将在哪里创建该文件夹?在/bin目录中? 我的web.config看起来像这样: <log4net> <appender name="FileAppender" type="log4net.Appender.FileAppender"> <file value="logs\log-file.txt" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> </log4net> 这是正确的登录方式: ILog logger = LogManager.GetLogger(typeof(CCController)); logger.Error("Some Page", ex); // where ex is the exception instance


4
如何在ASP.NET 5 MVC 6(vNext)中定义身份的密码规则?
默认情况下,ASP.NET 5中提供的默认身份提供程序具有非常严格的密码规则,要求使用小写字母,大写字母,非字母数字字符和数字。我正在寻找一种更改提供商密码要求的方法。 以前在ASP.NET 4中,可以通过Web.config XML文件配置提供程序,如先前所回答。但是,ASP.NET 5使用基于新代码的配置模式,目前尚不清楚如何配置身份。 如何更改应用程序的密码要求?

7
在一个解决方案中,如何在多个项目之间共享脚本?
万一问题不清楚。我在一个解决方案中有3个MVC项目。每次我创建一个新项目时,它都会添加“ Scripts”文件夹以及所有我需要的.js文件。我不想每次都为每个应用程序创建它。有没有办法从解决方案的中央文件夹中引用脚本,以便所有应用程序/项目都可以与它们之间的所有通用脚本共享一个通用脚本文件夹? 编辑: 如果有的话,请说明这样做的利弊...现在我很好奇。

5
具有数据属性的SelectListItem
无论如何,是否在ViewModel上预填充了带有数据属性的SelectList? 我想要做 @Html.DropdownListFor(m=> m.CityId, Model.Cities); 因此它生成如下代码: <select id="City" class="location_city_input" name="City"> <option data-geo-lat="-32.522779" data-geo-lng="-55.765835" data-geo-zoom="6" /> <option data-geo-lat="-34.883611" data-geo-lng="-56.181944" data-geo-zoom="13" data-geo-name="Montevideo" data-child=".state1" value="1">Montevideo</option> <option data-geo-lat="-34.816667" data-geo-lng="-55.95" data-geo-zoom="13" data-geo-name="Canelones, Ciudad de la Costa" data-child=".state41" value="41">Ciudad de la Costa</option> </select>



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.