这可能是一个简单的,但这里是:
我正在我的MVC3应用程序中实现一个excel可下载的报告.我过去曾使用过这种方法而且效果很好,但在这种情况下,报告中可能不存在销售数据.这是我的代码:
我在Reports控制器中有一个FileResult操作:
[HttpPost]
public FileResult ExcelReportDownload(ReportExcelDownloadRequest reportRequest)
{
ReportEngine re = new ReportEngine();
Stream report = re.GetReport(reportRequest);
return new FileStreamResult(report, "application/ms-excel")
{
FileDownloadName = "SalesReport.xls"
};
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,有时报告流可能为空,这意味着没有可用的销售信息,在这种情况下,我宁愿重定向到显示消息的视图,说没有可用的销售信息,但是我不知道如何实现这个.
有没有办法做到这一点?
我有一个VC2010 C#解决方案,里面有很多项目.
例如,我有一个Web项目,我有一个类库.
在web.config文件中,我在该<appSettings>部分中有一个键,例如
<add key="FileDirectory" value="G:\ftproot\sales" />
Run Code Online (Sandbox Code Playgroud)
我还在Web.Production.config文件中添加了一个键,以反映服务器上的文件目录.
所以当我在我的web项目中引用它时(它是MVC) - 我这样做:
var FTPPath = ConfigurationManager.AppSettings["FileDirectory"];
Run Code Online (Sandbox Code Playgroud)
这在我的web项目中工作正常.但是,我还需要在类库中引用它,这就是我的问题 - 有没有办法在同一个解决方案中从另一个项目(例如类库)引用web.config文件中的键?
所有帮助表示赞赏.谢谢
我有一个VS项目(由其他人制作),当我尝试在Visual Studio 2008上打开它时,我收到以下错误消息:
"所选文件是解决方案文件,但是由此应用程序的较新版本创建,无法打开"
我原以为VS是向后兼容的.有什么办法可以打开吗?
我正在关注MVC音乐商店教程,但我在第5 部分第5部分中遇到了Html Helper .
到目前为止,我似乎已经正确地遵循它(如果我错了请纠正我:))...但是我收到以下错误:
'musicStoreMVC.Helpers.HtmlHelper':静态类型不能用作参数
这是我的应用程序的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace musicStoreMVC.Helpers
{
public static class HtmlHelper
{
public static string Truncate(this HtmlHelper helper, string input, int length)
{
if (input.Length <= length)
{
return input;
}
else
{
return input.Substring(0, length) + "...";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人能看到我做错了什么,或者如果需要更多信息,我会很感激指针!谢谢.
我只是想构建一个视图,但我收到以下错误:
System.InvalidOperationException:传递给字典的模型项为null,但此字典需要类型为System.DateTime的非null模型项
现在,我知道为什么会出现这种情况,数据库中的特定字段为空,但它应该是,因为这是稍后编辑的内容.这是我的代码:
行动
public ActionResult View(Int64? Id)
{
ModelContainer ctn = new ModelContainer();
var item = from t in ctn.Items where t.ItemID == Id select t;
return View(Item.First());
}
Run Code Online (Sandbox Code Playgroud)
主视图
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Administrator.Master" Inherits="System.Web.Mvc.ViewPage<myApp.Data.Item>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
View
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.RenderPartial("Details", Model); %>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="Header" runat="server">
<h1>Details - <%= Model.MainItem %></h1>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
局部视图
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<myApp.Data.Item>" %>
<%@ Import Namespace="myApp.Supplier.Web.Extensions" %>
<fieldset>
<legend>Information</legend>
<div class="fieldset">
<%= …Run Code Online (Sandbox Code Playgroud) 我正在执行一些计算并将结果插入数据库.
我的问题是,我得到的答案似乎是四舍五入而不是向上.这似乎并不重要,但在大量销售过程中,美分开始加起来!!
Decimal pubCut = rrp * (percentageCutD / 100);
Decimal retCut = rrp * retailerCut;
Decimal edcut = rrp * edpercentage;
Run Code Online (Sandbox Code Playgroud)
老实说,我对数字很垃圾,整个数学函数都是我在大学里试图避免的.任何人都可以告诉我如何才能将这些数字用于向上舍入而不是向下舍入?
我想在数据库中查询日期等于或大于90天的记录.这是我到目前为止:
$format = 'Y-m-j G:i:s';
$date = date ( $format );
// -90 days from today
date ( $format, strtotime ( '-90 day' . $date ) );
Run Code Online (Sandbox Code Playgroud)
我现在有点不确定如何构建MYSQL查询.它会是这样的(我知道这是错的,但我不确定还有什么可做):
"SELECT * FROM recurringPayments WHERE lastpmt >= date ( $format, strtotime ( '-90 day' . $date ) ) ";
Run Code Online (Sandbox Code Playgroud) 今天我已经接近放弃了这个mvc应用!
我正在关注Mvc音乐商店教程,我被困在第54页.
这是我得到的错误:
System.NullReferenceException:未将对象引用设置为对象的实例.
错误发生在以下代码中的第三个段落(下拉列表)中:
<%@ Import Namespace ="MvcMovies1" %>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MvcMovies1.Models.Album>" %>
<p>
<%: Html.LabelFor(model => model.Title) %>
<%: Html.TextAreaFor(model => model.Title) %>
<%: Html.ValidationMessageFor(model => model.Title) %>
</p>
<p>
<%: Html.LabelFor(model => model.Price) %>
<%: Html.TextAreaFor(model => model.Price) %>
<%: Html.ValidationMessageFor(model => model.Price) %>
</p>
<p>
<%: Html.LabelFor(model => model.AlbumArtUrl) %>
<%: Html.TextAreaFor(model => model.AlbumArtUrl) %>
<%: Html.ValidationMessageFor(model => model.AlbumArtUrl) %>
</p>
<p>
<%: Html.LabelFor(model => model.Artist) %>
<%: Html.DropDownList("ArtistId", new SelectList(ViewData["Artists"] as IEnumerable, "ArtistId", "Name", …Run Code Online (Sandbox Code Playgroud) 我最近将SQL Server 2008从Windows身份验证模式更改为混合.我创建了一个新用户'taraw'并设置了密码.我正在连接到localhost - 这在使用Windows身份验证时非常有用,但是如果我想对我的用户使用SQL Server身份验证 - 我会收到以下错误:
共享内存提供程序,错误:0 - 管道的另一端没有进程(Microsoft SQL Server,错误233)管道(Microsoft SQL Server,错误233)
我知道密码是正确的,因为我刚创建它,我也尝试创建不同的用户,我得到相同的结果.我读过Namespipes可能被禁用的地方?但我还没有发现在哪里,甚至没有找到这个.(编辑:我已经发现了这个,并且启用了)
如果有人有任何建议,将非常感激.
谢谢
c# ×6
asp.net-mvc ×4
asp.net ×1
datetime ×1
fileresult ×1
html-helper ×1
jqplot ×1
jquery ×1
login ×1
model ×1
mysql ×1
php ×1
view ×1
web-config ×1