小编LCJ*_*LCJ的帖子

ASP.NET MVC 3:添加控制器时自动生成视图(无实体框架)

我正在努力学习MVC.我想在添加控制器时自动生成所需的视图代码.如果我选择"具有读/写操作和视图的控制器,使用实体框架"选项,则可以执行此操作.但是我没有使用实体框架.如何在不使用Entity Framework的情况下实现类似的行为?为什么当我不使用Entity Framework时它无法自动生成视图?

另外,是否有任何好的MVC3教程不使用Entity Framework(可以使用代码下载)?

参考

  1. 如何使用ADO.net dataservice将ASP.net MVC配置为Scaffold?

  2. 用于WCF Web API的Levergaing T4Scaffolding

  3. ASP.NET MVC 3和NHibernate脚手架

  4. 使用MvcScaffolding包支持您的ASP.NET MVC 3项目

  5. LINQ to SQL或Entity Framework再次为新的MVC 3项目

  6. 用于WCF服务的MVC脚手架

  7. 使用实体框架(.edmx模型)和Razor视图创建MVC3的下拉列表&&将数据库记录插入多个表

asp.net asp.net-mvc entity-framework razor asp.net-mvc-3

1
推荐指数
1
解决办法
5240
查看次数

ASP.NET MVC3:DisplayTemplates不显示模型值(MVC3 Partial Page)

为了学习DisplayTemplates,我创建了一个"String"DisplayTemplate,如下所示.期望在模型的字符串值之后附加单词"Hello".但它只显示"你好"这个词.我们如何纠正它?

注意:在Views\Contact\DisplayTemplates下添加String.cshtml

public class Contact
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

CONTROLLER

public class ContactController : Controller
{

    // GET: /Contact/Details/5
    public ActionResult Details(int id)
    {
        Contact myContact = new Contact();
        myContact.FirstName = "Lijo";
        myContact.LastName = "Cheeran";
        myContact.Age = 26;

        return View(myContact);

    }

}
Run Code Online (Sandbox Code Playgroud)

详细视图

@model MyDisplayAndEditorTemplateTEST.Contact

<fieldset>
<legend>Contact</legend>

<div class="display-label" style="font-weight:bold" >FirstName</div>
<div class="display-field">
    @Html.DisplayFor(model => model.FirstName)
</div>

<div class="display-label" style="font-weight:bold">LastName</div>
<div …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asp.net-mvc asp.net-mvc-3

1
推荐指数
1
解决办法
1680
查看次数

ASP.NET MVC3 RAZOR:文件上载给出文件计数为零

我需要使用带有RAZOR的MVC3将多个文件上传到Web服务器.我有以下代码.在控制器中,我的文件数为零.如何更正它以获取上传的文件的实际数量并获取内容?

public class MyFileController : Controller
{

    public ActionResult MyFileProcessActionTest()
    {
        return View();
    }

    [HttpPost]
    public ActionResult MyFileProcessActionTest(IEnumerable<System.Web.HttpPostedFileBase> files)
    {

        int fileCount = files.Count<System.Web.HttpPostedFileBase>();
        return RedirectToAction("Index");
    }
}
Run Code Online (Sandbox Code Playgroud)

视图

@{
ViewBag.Title = "MyFileProcessActionTest";
}

<h2>MyFileProcessActionTest</h2>

@using (Html.BeginForm())
{

<input type="file" name="files" id="file1" />
<input type="file" name="files" id="file2" />

<input type="submit"  />

}
Run Code Online (Sandbox Code Playgroud)

读:

  1. 使用Ajax.BeginForm绑定HttpPostedFileBase

  2. ASP.NET MVC上传和下载文件 http://www.mikesdotnetting.com/Article/125/ASP.NET-MVC-Uploading-and-Downloading-Files

  3. 如何验证文件上载的文件类型?

  4. MVC 3文件上传和模型绑定

.net asp.net asp.net-mvc razor

1
推荐指数
2
解决办法
3710
查看次数

从Visual Studio中将Sub添加到Subversion

虽然我之前使用过TFS,但我是SVN的新手.我在VS 2010中有ASP.Net项目.我需要在项目中添加AjaxControlToolkit dll.添加此dll后,我尝试在VS2010中使用Subversion提交更改.项目文件出现在要提交的项目列表中; 但是没有列出新添加的dll.我怎样才能检查新添加的dll?

注意:我正在寻找一种涉及用户界面操作的方法; 不是命令.我正在使用Tortoise SVN

注意:BIN文件夹有一个问号.dll也被添加到其中.所以,我应该检查BIN吗?BIN文件夹中的dll文件也没有问号

.net c# svn asp.net tortoisesvn

1
推荐指数
1
解决办法
5160
查看次数

Gridview ItemTemplate的条件逻辑(仅使用标记)

我有一个gridview,如下所示.当EmpType合同时,EmpID必须被屏蔽为"XXX"; 对于普通员工,应显示实际的EmpID.此外,当它被屏蔽时,我需要在EmpID列中添加一个按钮控件.

我需要用标记来做; 不使用背后的代码.我们如何为这个逻辑编写Gridview的ItemTemplate的条件逻辑?

注意:.Net 4.0

    <asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField HeaderText="AssociateID" DataField="AssociateID" />
            <asp:TemplateField HeaderText="EmpID">
                <ItemTemplate>
                    <%# Eval("EmpID")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="EmpType" DataField="EmpType" />
        </Columns>
    </asp:GridView>
Run Code Online (Sandbox Code Playgroud)

代码背后

    List<Associate> associatesList = new List<Associate>();
    associatesList.Add(new Associate { AssociateID = 1, EmpID = 101, EmpType = "Contract" });
    associatesList.Add(new Associate { AssociateID = 2, EmpID = 102, EmpType = "Regular" });
    Gridview1.DataSource = associatesList;
    Gridview1.DataBind();
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net asp.net gridview

1
推荐指数
1
解决办法
1万
查看次数

文本对齐不起作用

我有以下HTML代码.http://jsfiddle.net/Lijo/wJX9C/

我需要将内容("HAI"和按钮)对齐为中心对齐.我们如何纠正它?

注意:它需要在IE7,Chrome中运行

<html>
<div id="popup"  class="popup">
       <div id = "poupContentLine1" class="poupContentLine">
            HAI
       </div>
       <div id = "poupContentLine2" class="poupContentLine">
            <input type="submit" name="ctl00$detailContentPlaceholder$btnClose" value="CLOSE" id="detailContentPlaceholder_btnClose" />
       </div>
</div>
</html>
Run Code Online (Sandbox Code Playgroud)

样式

.popup 
{
  width:530px;
  background-color:#ffffff;
  border:3px solid Orange;
  padding: 10px 5px 10px 5px;
  margin: 0px 0px 0px 0px;
}

poupContentLine
{
    width:530px; 
    height:auto;
    text-align:center;
    margin: 0px 0px 0px 0px;
}
Run Code Online (Sandbox Code Playgroud)

html javascript css

1
推荐指数
1
解决办法
213
查看次数

在LINQ中使用"OfType"

我有两个派生自BankAccount类的类 - FixedBankAccount和SavingsBankAccount.这是基于LINQ to SQL的"TPH(Table Per Hierarchy)".

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.BankAccount")]
[InheritanceMapping(Code = "Fixed", Type = typeof(FixedBankAccount), IsDefault = true)]
[InheritanceMapping(Code = "Savings", Type = typeof(SavingsBankAccount))]
public abstract partial class BankAccount : INotifyPropertyChanging, INotifyPropertyChanged
Run Code Online (Sandbox Code Playgroud)

我需要实现一个方法GetAllAccountsOfType,它将返回所有SavingsBankAccount(如果传递的类型是SavingsBankAccount)或FixedBankAccounts(如果传递的类型是FixedBankAccount).我收到错误:

无法找到类型或命名空间名称'param'"

使用以下代码(在LINQ查询中使用"OfType")

我们怎样才能让它发挥作用?

库:

namespace RepositoryLayer
{    
    public class LijosSimpleBankRepository : ILijosBankRepository
    {
        public System.Data.Linq.DataContext Context { get; set; }

        public virtual List<DBML_Project.BankAccount> GetAllAccountsOfType(DBML_Project.BankAccount param)
        {
            var query = from p in Context.GetTable<DBML_Project.BankAccount>().OfType<param>()
                        select p;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq generics linq-to-sql

1
推荐指数
1
解决办法
3521
查看次数

没有DataMember属性的DataContract序列化

我使用函数FreezeAllAccountsForUser生成以下XML.我需要为此函数仅序列化以下两列.如何将序列化限制为两列?

  1. BankAccountID
  2. 状态

注意:关键点是,制定此限制的范围应仅在FreezeAllAccountsForUser函数内; 不全球化.

参考

  1. 序列化IEnumerable包含派生类:循环引用问题

XML

 <ArrayOfBankAccount xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" z:Size="1" 
                xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" 
                xmlns="http://schemas.datacontract.org/2004/07/DBML_Project">

  <BankAccount z:Id="2" i:type="FixedBankAccount">

<AccountOwnerID>2</AccountOwnerID>
<AccountType z:Id="3">Fixed     </AccountType>
<BankAccountID>2</BankAccountID>

<BankUser z:Id="4">
  <BankAccounts z:Id="5" z:Size="1">
    <BankAccount z:Ref="2" i:nil="true" />
  </BankAccounts>
  <Name z:Id="6">TestP1    </Name>
  <UserID>2</UserID>
  <UserType z:Id="7">Ordinary  </UserType>
</BankUser>

<OpenedDate i:nil="true" />

<Status z:Id="8">FrozenFA</Status>

   </BankAccount>

</ArrayOfBankAccount>
Run Code Online (Sandbox Code Playgroud)

序列化

public class BankAccountAppService
{
    public RepositoryLayer.ILijosBankRepository AccountRepository { get; set; }

    public void FreezeAllAccountsForUser(int userId)
    {
        IEnumerable<DBML_Project.BankAccount> accounts = AccountRepository.GetAllAccountsForUser(userId);
        foreach (DBML_Project.BankAccount acc in accounts)
        {

            string typeResult = …
Run Code Online (Sandbox Code Playgroud)

c# wcf serialization datacontractserializer linq-to-sql

1
推荐指数
1
解决办法
3625
查看次数

EF代码优先:无法连接到SQL Server

我正在尝试使用代码优先方法创建数据库.当我运行以下代码时,我收到以下异常.我们怎样才能克服这一点?

笔记:

  • 我的系统上有SQL Server 2008 R2.
  • 我没有使用任何配置文件.我假设它将使用约定创建数据库
  • 没有开放的连接; 我刚刚重启系统并进行了测试.仍然是同一个问题.
  • EntityFramework.dll的运行时版本是v4.0.3xxx

例外:

提供程序未返回ProviderManifestToken字符串

消息:

此操作需要连接到"主"数据库.无法创建与"主"数据库的连接,因为已打开原始数据库连接并且已从连接字符串中删除凭据.提供未打开的连接.

内在例外:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

码:

using System.Data.Entity;
namespace LijosEF
{
  public class Dinner
  {
      public int DinnerID { get; set; }
      public int Title { get; set; }
  }

  public class RSVP
  {
    public int RSVPID { get; set; }
    public int DinnerID { get; set; }

    public virtual Dinner Dinner { get; set; }
  }

  //System.Data.Entity.DbContext is from …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server ado.net entity-framework

1
推荐指数
1
解决办法
3837
查看次数

一个WCF服务 - 两个客户端; 一个客户端不起作用

我有一个WCF服务和两个控制台应用程序客户端.

服务:使用WCSF Blue工具从wsdl联系人创建服务代码.

客户端1:此客户端使用通过浏览svc文件获得的wsdl.此浏览的wsdl文件与合同wsdl文件略有不同.

客户端2:此客户端使用原始wsdl合同创建.

Cleint1工作正常.客户端2无法正常工作.什么都可能是潜在的问题?

两个客户端的App.Config文件看起来相似 - 只有名称更改.我认为,问题将在客户端生成C#代码 - 最有可能在Action - ReplyAction中.这里有什么需要纠正的?

一个明显的区别在于Action和ReplyAction

客户1:

Action ="urn:lijo:demos:multiplyservice:calculation:v1/ICalculationService/GetMultiplied",ReplyAction ="urn:lijo:demos:multiplyservice:calculation:v1/ICalculationService/GetMultipliedRe"+"sponse"

客户2:

Action ="urn:lijo:demos:multiplyservice:calculation:v1:getMultipliedIn",ReplyAction ="*"

跟踪消息

由于EndpointDispatcher上的ContractFilter不匹配,因此无法在接收方处理具有Action'urn:lijo:demos:multiplyservice:calculation:v1:getMultipliedIn'的消息.这可能是由于合同不匹配(发送方与接收方之间的操作不匹配)或发送方与接收方之间的绑定/安全性不匹配.检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息,传输,无).

编辑

这可以通过更改Action和ReplyAction来更正,如下所示(从服务中复制).

  [System.ServiceModel.OperationContractAttribute(Action = "urn:lijo:demos:multiplyservice:calculation:v1/ICalculationService/getMultiplied", ReplyAction = "urn:lijo:demos:multiplyservice:calculation:v1/ICalculationService/getMultipliedRe" +
        "sponse")]
Run Code Online (Sandbox Code Playgroud)

注意:确保服务中的外壳正确是很重要的(即getMultiplied不是GetMultiplied)

从服务中复制不是一个好的选择,尽管它有效.什么是正确的Action和ReplyAction?

另外,您能否指出如何修改wsdl以使ReplyAction在生成的客户端代理中正确?这是将其标记为已回答的重要部分.

WCF:操作,星号和元数据

用于元数据发布的WsdlExporter忽略使用星号操作(Action和ReplyAction)的操作.

来自MSDN -ReplyAction属性

在服务中指定星号指示WCF不向消息添加回复操作,如果您直接对消息进行编程,这将非常有用.

参考文献:

  1. WCF元数据缺少操作

RestaurantData.xsd

 <?xml version="1.0" encoding="utf-8" ?>
 <xs:schema id="RestaurantData" targetNamespace="urn:lijo:demos:multiplyservice:data:v1"
    elementFormDefault="qualified" xmlns="urn:lijo:demos:multiplyservice:data:v1"
    xmlns:mstns="urn:lijo:demos:multiplyservice:data:v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:complexType name="multipliedResult">
  <xs:sequence>
  <xs:element name="resultNumber" type="xs:int" />
   </xs:sequence>
   </xs:complexType>

  </xs:schema>
Run Code Online (Sandbox Code Playgroud)

原始合同wsdl

 <definitions xmlns:import0="urn:lijo:demos:multiplyservice:messages:v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:import1="urn:lijo:demos:multiplyservice:data:v1" xmlns:tns="urn:lijo:demos:multiplyservice:calculation:v1" …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf contract-first

1
推荐指数
1
解决办法
1万
查看次数