我有一个模型,我想在页面上显示一个字节数组图像文件.
如何在不返回数据库的情况下执行此操作?
我看到的所有解决方案都使用ActionResult返回数据库来检索图像,但我已经在模型上有了图像......
使用MVC 3和Razor视图引擎.我有这个观点:
@model dynamic
@{
var products = (List<ListItemBaseModel>)Model.Products;
var threshold = (int)(Model.Threshold ?? 1);
var id = Guid.NewGuid().ToString();
}
Run Code Online (Sandbox Code Playgroud)
使用此代码从另一个视图调用它:
@Html.Partial("PartialViewName", new { Products = Model, Threshold = 5 })
Run Code Online (Sandbox Code Playgroud)
在两个视图中,当我调试它们并观看模型时,它似乎包含正确的对象.当我执行代码时,我在"var products ="行上收到错误说:
'object'不包含'Products'的定义
任何人都可以向我解释为什么我会收到这个错误?再次,当我在调试模式下观察Model对象时,它看起来很好(具有2个属性:Products和Threshold)
我想将所有JavaScript代码保存在一个部分中; 就body在我的主布局页面中的结束标记之前,只是想知道最好的去做,MVC风格.
例如,如果我创建一个DisplayTemplate\DateTime.cshtml使用jQuery UI的DateTime Picker 的文件,而不是将JavaScript直接嵌入到该模板中,那么它将在页面中间呈现.
在我的普通视图中,我可以使用@section JavaScript { //js here }然后@RenderSection("JavaScript", false)在我的主布局中,但这似乎不适用于显示/编辑器模板 - 任何想法?
我想知道什么,为什么或何时更好地选择cshtml以及选择aspx技术的原因是什么,为什么或何时更好?这两种技术的目的是什么?
谢谢,
如果我看Razor视图引擎,然后我看到一个非常漂亮和简洁的语法并不特别依赖于生成HTML.所以我想,这将是多么容易使用在发动机外部asp.net中的一个"正常"的.NET环境,例如生成文本,代码,...
欢迎使用任何指针,示例,注释或解释.
我创建了一个名为_Test.cshtml的测试部分页面,并将其放在与我将调用它的视图相同的目录中,这里是:
<div>hi</div>
Run Code Online (Sandbox Code Playgroud)
在调用cshtml视图中,我只是简单地说:
@Html.RenderPartial("_Test")
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
CS1502:'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重载方法匹配有一些无效的参数
我也尝试了相同结果的完整路径.
我很困惑为什么这样做是这样的,我想我错过了一些简单的东西?
之前已经提到过:为什么Visual Studio代码格式化不适用于Razor标记?
但这个问题已有几年了.Razor格式化仍然是完全不可接受的.我已经放弃了修复它.
我可以为CSHTML文件禁用所有Visual Studio格式吗?如果没有,我可以完全禁用所有Visual Studio格式吗?我可以使用任何第三方黑客攻击?必须有东西!
我升级到2013年,格式也一样糟糕.
[编辑]:2015年也是上帝可怕的.我真的希望他们能解决这个问题.
[编辑]:2017年也是上帝可怕的.我真的希望他们能解决这个问题.
我在_Layout.cshtml文件的页脚中使用以下代码将AssemblyInfo版本数据放入我的MVC3站点中每个页面的页脚.然而:
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Run Code Online (Sandbox Code Playgroud)
只需在页脚中打印:
Revision 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
当我修改视图以使用以下内容显示"执行装配"的所有装配信息时
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
Run Code Online (Sandbox Code Playgroud)
其中打印以下内容:
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Run Code Online (Sandbox Code Playgroud)
这表明"执行程序集"不是我的主要应用程序,它是视图本身.
如何获取ACTUAL应用程序的程序集信息,而不仅仅是单个视图?
在这一行:
@Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog",
new { blogPostId = blogPostId, replyblogPostmodel = Model,
captchaValid = Model.AddNewComment.DisplayCaptcha })
Run Code Online (Sandbox Code Playgroud)
我在blogPostId上遇到以下运行时错误:
参数字典包含参数'blogPostId'的非可空类型'System.Int32'的空条目,用于方法'System.Web.Mvc.ActionResult BlogReplyCommentAdd(Int32,Nop.Web.Models.Blogs.BlogPostModel,Boolean)'in 'Nop.Web.Controllers.BlogController'.可选参数必须是引用类型,可空类型,或者声明为可选参数.参数名称:参数
我已经为此分配了一个值,例如
@{
var blogPostId = Model.Id;
}
Run Code Online (Sandbox Code Playgroud)
我的控制器:
public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid)
{}
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?请举个例子.
我尝试这样做的主要动机是获取Javascript,只需要页面底部的部分Javascript和其他Javascript,而不是在部分呈现的页面中间.
这是我正在尝试做的简化示例:
这是在正文之前的Scripts部分的布局.
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
</head>
<body>
@RenderBody()
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
@RenderSection("Scripts", false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是使用此布局的示例视图.
<h2>This is the view</h2>
@{Html.RenderPartial("_Partial");}
@section Scripts {
<script type="text/javascript">
alert("I'm a view.");
</script>
}
Run Code Online (Sandbox Code Playgroud)
这是从视图中呈现的部分内容.
<p>This is the partial.</p>
@* this never makes it into the rendered page *@
@section Scripts {
<script type="text/javascript">
alert("I'm a partial.");
</script>
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,视图中指定的标记放在节中,但不包含部分标记.是否可以使用Razor从局部视图填充部分?如果没有,还有哪些其他方法可以获取Javascript,只需要页面底部的部分内容,而不是全局包含它?
razor ×10
asp.net-mvc ×5
asp.net ×2
c# ×2
assemblies ×1
html ×1
javascript ×1
reflection ×1
templating ×1