我正在尝试打开Word文档,更改一些文本,然后将更改保存到新文档.我可以使用下面的代码完成第一项,但我无法弄清楚如何将更改保存到新文档(指定路径和文件名).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using DocumentFormat.OpenXml.Packaging;
using System.IO;
namespace WordTest
{
class Program
{
static void Main(string[] args)
{
string template = @"c:\data\hello.docx";
string documentText;
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(template, true))
{
using (StreamReader reader = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
documentText = reader.ReadToEnd();
}
documentText = documentText.Replace("##Name##", "Paul");
documentText = documentText.Replace("##Make##", "Samsung");
using (StreamWriter writer = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
writer.Write(documentText);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我是一个完全的初学者,请原谅基本问题!
我正在使用MVC 3 Razor为实践目的制作一个简单的CMS,我的想法是我创建了一些局部视图.
我想要进行数据库查找,并看到3个部分视图需要渲染到页面.
我该怎么做?在WebForms中,您调用LoadControl(ControlURL),但我在这里看不到等价物.
它会成为客户端吗?
编辑 - 我更想从模型中获取视图名称,然后渲染该视图而不是事先知道视图的名称.因此,页面可能具有名为Foo的视图或名为Bar的视图.该模型在运行时将告诉控制器操作呈现哪个视图.
我有一个web.config文件,可以自动将流量发送到HTTPS.但是,如果有人进入MyDomain.com,那么它将转到https://mydomain.com,如果有人进入www.mydomain.com,那么它将转到https://www.mydomain.com.
我希望所有流量都转到https://www.mydomain.com.这可以使用web.config的rules元素吗?我的文件目前看起来像这样:
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
Run Code Online (Sandbox Code Playgroud)
我想为我的应用程序使用MVC 3和Entity Framework.
该模型将存储在与MVC应用程序不同的程序集中.
我正在做的选择是使用EF生成我的实体或首先使用代码.
首先使用代码,我可以使用[Required]等来装饰成员...但是,如果EF已经从DB生成实体,我将如何添加这些属性?
让EF生成我的实体将节省大量时间,但我希望MVC自动填充验证,具体取决于我如何装饰我的成员.这有意义吗?如果是这样,我该怎么做?
我有一个MVC项目,我正在考虑加快速度.我正在摸索的一件事是我无法控制的BeginProcesRequest().使用New Relic我发现这种方法平均占用了交易完成所需时间的90%.
我的控制器中的代码非常简单.它查找用户的操作会话,并在找到时重定向到其仪表板.实际页面上没有任何数据库调用.唯一写的是:
if (Session["UserID"] != null)
// Perform actions
Run Code Online (Sandbox Code Playgroud)
正如您在屏幕截图中看到的那样,BeginProcessRequest()方法大约需要4秒
这不是我网站的独特之处吗?我正在为服务器使用一个小的EC2实例,虽然在站点上运行其他应用程序,但CPU和内存在整个请求期间几乎保持为0.
EDIT - 审查了以下帖子:
但是,当我的应用程序在最耗时的请求发生时处于空闲状态时,我无法看到它与竞争线程的关系.
我有一个C#接口,以及一个实现该接口的具体类.我现在想要创建另一个实现该接口的类.很简单.
但是,大多数方法在类中都是完全相同的,只有几种方法实际上会发生变化.
我不想复制第一个包含在我的第二个类中的所有逻辑.
如何创建第二个类,并在我的第一个类中使用逻辑,除了额外的东西?
我的界面叫做IEventRepository,我的第一个类叫做BaseEvents.我现在想创建一个名为FooBarEvents的新类.
我对FooBarEvents的类定义是:
public class FooBarEvents : BaseEvents, IEventRepository
Run Code Online (Sandbox Code Playgroud)
我的意图是在每个重复代码的方法中使用return base.Method().
我假设这不正确?
我正在尝试使用由Visual Studio 2013中的Oracle Web Logic创建的Web服务.我添加了服务引用,但是当我调用服务构造函数时,我收到错误:
在操作(operationName)中,在名称空间(名称空间URL)中使用元素名称(elementName)声明了多个错误
WSDL中此操作的片段如下图所示:
每次我尝试使用该服务时都会抛出此异常,我无法继续进行此操作.
这是WSDL的问题还是我可以作为消费者做些什么?
我在我的MVC应用程序中大量使用ViewBag,这被认为是不好的做法吗?我不确定是否花时间创建ViewModel(但我认为它更适合MVVM而不是MVC)或继续大量使用ViewBag.支持和反对的理由是什么?示例控制器方法将返回它的模型(通常是一个简单的域实体)以及以下对ViewBag的调用:
ViewBag.TotalItems = data.Count();
ViewBag.FilteredItems = gridFilters;
ViewBag.Action = "Events";
ViewBag.Area = "People";
ViewBag.EntityID = person.EntityID;
ViewBag.OrganisationID = ID;
ViewBag.Name = string.Format("{0} {1}", person.FirstName, person.LastName);
ViewBag.IsEnabled = person.IsEnabled;
ViewBag.EntityID = person.EntityID;
ViewBag.Favourited = users.IsOnUserFavourites(person.EntityID);
ViewBag.Columns = userColumns;
ViewBag.Title = "Person : " + string.Format("{0} {1}", person.FirstName, person.LastName) + " - Events";
Run Code Online (Sandbox Code Playgroud) 我目前不满意填充DropDownListFor()对象的方式.我试图找到尽可能填充IEnumerable的通用方法.这就是我到目前为止所拥有的.
帮手:
public static List<SelectListItem> ToSelectList(IDictionary<string,string> dictionaryItems, string selectedValue, string noSelection, bool search = false)
{
List<SelectListItem> items = new List<SelectListItem>();
if (search)
{
items.Add(new SelectListItem { Selected = true, Value = "-1", Text = string.Format("-- {0} --", noSelection) });
}
foreach (var item in dictionaryItems)
{
items.Add(new SelectListItem
{
Text = item.Key,
Value = item.Value,
Selected = selectedValue == item.Value ? true : false
});
}
return items
.OrderBy(l => l.Text)
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
控制器:
[HttpGet]
public ActionResult Index()
{ …
Run Code Online (Sandbox Code Playgroud) 我有一项功能,允许用户根据自己的状态代码过滤记录.在菜单中,我有一个自定义过滤器部分:
<h3>Custom Filters</h3>
<br />
<ul id="ui-ajax-tabs">
@{ Html.RenderAction("GetGroups", "Manage");}
</ul>
Run Code Online (Sandbox Code Playgroud)
而我的部分观点如下:
@model IEnumerable<AllEngage.Model.Group>
@using AllEngage.Web.Helpers
@foreach (var group in Model)
{
<li>
<label for="@group.GroupName">@group.GroupName</label>
@Html.DropDownList("GroupItems", group.GroupItems.ToSelectListItems())
</li>
}
Run Code Online (Sandbox Code Playgroud)
从下拉列表中选择一个项目时,我想在我的控制器中触发一个操作方法:
[HttpGet]
public ActionResult Index(int page = 1, int groupFilterId = -1)
Run Code Online (Sandbox Code Playgroud)
什么是最好的方式去?使用json开火还是以某种方式回复帖子?
asp.net-mvc ×4
c# ×3
razor ×3
asp.net ×1
inheritance ×1
office-2007 ×1
oop ×1
openxml ×1
openxml-sdk ×1
partial ×1
performance ×1
redirect ×1
viewbag ×1
views ×1
wcf ×1
web-config ×1
weblogic ×1
wsdl ×1