我正在关注MVC音乐商店教程,它说我可以通过单击Project - > Add ASP.Net文件夹 - > App_Data来创建App_Data文件夹.
但是,当我这样做时,我发现所有标准的ASP.Net文件夹都被禁用,无法选择.为什么这样,我该如何解决?
我有一个webgrid,有一个列我想只对某些用户可见.目前我已按如下方式编码网格
if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
{
@grid.GetHtml(columns: grid.Columns(
grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { contractId = item.ContractId })),
grid.Column("SignOffDate", "Sign Off Date",
format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
grid.Column("FullContractNumber", "Contract Number"),
grid.Column("ContractTitle", "Title")
));
}
else
{
@grid.GetHtml(columns: grid.Columns(
grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
grid.Column("SignOffDate", "Sign Off Date",
format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
grid.Column("FullContractNumber", "Contract Number"),
grid.Column("ContractTitle", "Title")
));
}
Run Code Online (Sandbox Code Playgroud)
但是肯定有更好的方法而不重复所有代码?2列输入之间的唯一区别是我想显示特定用户的编辑链接.那么这样做的最佳替代方式是什么?
我正在使用EF 6异步功能获得"发生System.InvalidCastException"异常.消息是:无法将"Glimpse.Ado.AlternateType.GlimpseDbConnection"类型的对象强制转换为"System.Data.SqlClient.SqlConnection".
此应用程序已从MVC4升级到MVC5,并且首次使用.Net Framework 4.5.
我知道这已成为一个问题; https://github.com/Glimpse/Glimpse/issues/540但我尝试获取最新版本的Glimpse,我仍然遇到同样的问题.我想知道我是否无法正确卸载Glimpse,无论是最新版本还是之前使用过的版本.
发生异常的代码是;
public static async Task<IList<Company>> GetCompaniesAsync()
{
using (var db = new SherryGreenGroupContext())
{
return await db.Companies
.Include("AddressLines")
.Where(x => x.EndOfBusinessDate == null)
.OrderBy(x => x.CompanyName).ToListAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
例外是;
System.InvalidCastException occurred
HResult=-2147467262
Message=Unable to cast object of type 'Glimpse.Ado.AlternateType.GlimpseDbConnection' to type 'System.Data.SqlClient.SqlConnection'.
Source=System.Data
StackTrace:
at System.Data.SqlClient.SqlCommand.set_DbConnection(DbConnection value)
InnerException:
Run Code Online (Sandbox Code Playgroud) 我已经部署了我的MVC应用程序,但错误处理不起作用.我使用SQLite数据库,当我尝试导航到Elmah中的错误消息时,我得到了这个异常;
System.Data.SqlClient.SqlException:找不到存储过程'ELMAH_GetErrorsXml'.
当然我需要部署我的web.config中定义的SQLite数据库;
add name ="ELMAH.SQLite"connectionString ="Data Source = | DataDirectory | errors.s3db"/>
我在考虑部署应用程序时没有部署SQLite数据库.但我无法在我的本地文件系统上找到errors.s3db,所以我不确定如何在我的实时环境中设置它.
NLog.config文件未设置连接字符串.
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Warn"
internalLogFile="c:\temp\internal-nlog.txt">
<!-- Load the ASP.NET Core plugin -->
<extensions>
<add assembly="NLog.Web.AspNetCore" />
</extensions>
<variable name="SirNLogDb" value="data source=SQL_MULALLEY;initial catalog=LogFiles;User ID=xxx;Password=yyy;">
</variable>
<!-- providerName="System.Data.SqlClient"-->
<!-- the targets to write to -->
<targets>
<target name="db"
xsi:type="Database"
dbProvider="System.Data.SqlClient"
connectionString="${var:SirNLogDb}"
commandType="StoredProcedure"
commandText="[dbo].[NLog_AddEntry_p]">
<parameter name="@machineName" layout="${machinename}" />
<parameter name="@siteName" layout="${iis-site-name}" />
<parameter name="@logged" layout="${date}" />
<parameter name="@level" layout="${level}" />
<parameter name="@username" layout="${aspnet-user-identity}" />
<parameter name="@message" layout="${message}" />
<parameter name="@logger" layout="${logger}" />
<parameter name="@properties" layout="${all-event-properties:separator=|}" />
<parameter …Run Code Online (Sandbox Code Playgroud) 在Visual Studio 2017中,我转到程序包管理器进行dotnet还原.然后我收到一条错误消息
错误MSB4019:找不到导入的项目"C:\ Program Files\dotnet\sdk\2.1.201\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets".
我导航到
C:\ Program Files\dotnet\sdk\2.1.201\Microsoft
并缺少VisualStudio路径,因此错误消息.我该如何解决?
下面的代码是一个可怕的黑客.
Uri linkUri = HttpContext.Current.Request.Url;
string link = linkUri.ToString().Substring(0, linkUri.ToString().IndexOf("Users/Create"));
Run Code Online (Sandbox Code Playgroud)
而不是编辑字符串,我如何获得正确的路由Url?
例如,我想要http://localhost:9999/而不是http://localhost:9999/Users/Create
我正在研究.Net MVC应用程序,在测试服务器上我想部署同一个应用程序的2个版本.
我通过使用应用程序中相关项目的发布选项进行部署.
在测试服务器上,我有2个版本的单独文件夹,在IIS(v7.5)中我有2个虚拟路径.
但是,当我运行最新版本的应用程序时,编译会选择另一个版本.
我如何阻止这种情况发生?
如何在MVC 2中设置TextBox的MaxLength和Size?关于SO的问题已经提出了几个问题.作为MVC的新手,我发现没有一个解决方案似乎有效 - 可能是因为我做得不对.
无论如何,我想知道是否有更好的解决方案,因为之前的问题似乎是在MVC 2处于测试阶段时提出的.
asp.net-mvc ×6
appsettings ×1
asp.net-core ×1
azure-devops ×1
c# ×1
elmah ×1
glimpse ×1
iis ×1
nlog ×1
razor ×1
show-hide ×1
webgrid ×1