渲染这样的控件有什么好处:
<% Html.RenderPartial("MyControl") %> or
<%=Html.TextBox("txtName", Model.Name) %>
Run Code Online (Sandbox Code Playgroud)
在Web表单样式:
<uc1:MyControl ID=MyControl runat=server />
Run Code Online (Sandbox Code Playgroud)
我理解性能可能是一个原因,因为不需要创建任何对象,但是有可能从代码库中调用它只是为了做一些基本的渲染逻辑可能非常有用.
如果不鼓励这样做,那么你如何处理这种情况:
您需要有条件地使控件可见,并且您不希望用渲染逻辑填充HTML.
你有,<input type="text" value="<%= Model.Name %>" />但你需要检查Model是否为null,因为否则会引发NullPointerException.
[编辑]当我开始使用ASP MVC时我问过这个问题,现在我看到了像Cristian一样的MVC方式的优点.
我需要在存储过程中为动态TSQL语句用单引号括起几个字符串.我绝对肯定不会传递任何单引号值(这些字段在应用程序级别不是"可编辑的",只能选择)因此我的要求在这方面相当温和.
我想出的解决方案很简单但很好:
声明@SingleQuote nvarchar(1)
选择@SingleQuote =''''
然后在整个地方使用它:-)
但是,如果有更好的方法,即一个SQL函数就像newid()那样生成一个新的GUID,那将会很有帮助.
那我只需要做一些事情:
选择..... SingleQuotes(MyField的)....
有什么建议吗?
感谢您抽出宝贵时间阅读本文,
安德鲁
我正在编写一个相当简单的Django应用程序,用户可以输入字符串查询.应用程序将通过数据库搜索此字符串.
Entry.objects.filter(headline__contains=query)
Run Code Online (Sandbox Code Playgroud)
这个查询非常紧张,但对于那些不能100%确定他们正在寻找什么的人来说并没有真正帮助.所以我扩大了搜索范围.
from django.utils import stopwords
results = Entry.objects.filter(headline__contains=query)
if(!results):
query = strip_stopwords(query)
for(q in query.split(' ')):
results += Entry.objects.filter(headline__contains=q)
Run Code Online (Sandbox Code Playgroud)
我想为此添加一些额外的功能.搜索未拼写拼写单词,复数形式,常见同音异义词(声音拼写不同),等等.我只是想知道这些东西是否内置于Djangos查询语言中.对我来说写一个巨大的算法并不重要,因为我真的只是在寻找内置的东西.
提前感谢所有答案.
最近我发现我的发布可执行文件(用msvc ++ express 2008制作)变得非常大.当我用十六进制查看器检查可执行文件时,我看到只有前300k字节包含有用数据,其余字节只有零 - 6兆字节的零字节.
debug built exe的大小为1MB,但发行版为6.5MB.
为什么MSVC++ express会做那些无用的事情?我该如何解决?
我在视图页面上有一个简单的表单,实现为用户控件,看起来像这样:
<%=Html.BeginForm("List", "Building", FormMethod.Post) %>
//several fields go here
<%Html.EndForm(); %>
Run Code Online (Sandbox Code Playgroud)
我想解决两个问题,第一个是我希望接收它的控制器方法获取用户控件的类型参数.目标是避免将表单的所有字段放入方法的参数列表中.控制器方法目前看起来像这样:
[AcceptVerbs("Post")]
public ActionResult List(string capacityAmount)
{
ProfilerDataDataContext context = new ProfilerDataDataContext();
IEnumerable<Building> result = context.Buildings.OrderBy(p => p.SchoolName);
ViewData["Boroughs"] = new SelectList(Boroughs.BoroughsDropDown());
return View(result);
}
Run Code Online (Sandbox Code Playgroud)
表单中的其余字段将用于对建筑物类型进行搜索.
表单发布很好,我可以按照你期望的方式搜索容量,但是当我在搜索中添加参数时,我可以闻到丑陋.
其次,较小的问题是当页面呈现时,BeginForm标记将字符串"System.Web.Mvc.Form"呈现给页面.我如何让它消失?
希望有人可以帮我解决这个问题.我正在寻找一种在我的WCF服务上启用消息级安全性的方法,而不是使用证书.问题是该应用程序用于通过VPN与多个站点连接的客户端,每个站点都有自己的域控制器,并且域不相互信任.我对证书完全不熟悉,虽然很多人说这是要走的路,但我不知道它是否可以在这种环境下工作?
乞求帮助:)亲切的问候安德里斯
将表单发回服务器时,是否可以在控制器操作中操作,更改,设置HTTP Post中包含的值?我想删除用户输入的某些文本框值,以便始终必须重新输入这些值(例如密码字段).默认情况下,Html帮助程序从HTTP Post信息中提取HTML控件的初始值.
我有一个通用的概念证明WCF服务,它使用表单身份验证来保护访问.当我的客户端是.NET时,一切都很棒(下面的vb代码)
Dim client As SupplierServiceClient = New SupplierServiceClient()
client.ClientCredentials.UserName.UserName = "xxxx@xxx.xx.xx"
client.ClientCredentials.UserName.Password = "password"
Dim SupplierList As List(Of Supplier) = client.GetSuppliers()
Run Code Online (Sandbox Code Playgroud)
但是我希望这可以与任何可以执行SOAP 1.1/1.2的人互操作 - 如何连接PHP或Java客户端?
我的WCF web.config列在下面(fyi)
<system.serviceModel>
<services>
<service name="SampleApplicationWCF.Library.SupplierService" behaviorConfiguration="NorthwindBehavior">
<endpoint address="" name="wsHttpSupplierService" contract="SampleApplicationWCF.Library.ISupplierService" binding="wsHttpBinding" bindingConfiguration="wsHttp"/>
<endpoint address="https://server/SampleApplicationWCF/SupplierService.svc/Basic" name="basicHttpSupplierService" contract="SampleApplicationWCF.Library.ISupplierService" binding="basicHttpBinding" bindingConfiguration="basicHttp"/>
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex"/>
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="wsHttp">
<security mode="TransportWithMessageCredential">
<transport/>
<message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="true"/>
</security>
</binding>
</wsHttpBinding>
<basicHttpBinding>
<binding name="basicHttp">
<security mode="TransportWithMessageCredential">
<transport/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="NorthwindBehavior"> …Run Code Online (Sandbox Code Playgroud) 如果您要生成一个字符串页面并在最后一刻通过Response.Write输出所有内容,您应该在哪里放置此代码?
我需要能够动态地将一堆JavaScript写入客户端以使用一些新的Google可视化jsapi.我注意到MVC框架的最后一个版本"阻止了"视图上的CodeBehinds.这是真正的演示代码.它应该去哪里?什么是这里的首选方法...我从来不是"SingleFile"的粉丝.
我正在尝试编组一个DataHandler具有JAXB(2.1.12)字段的对象.对于流媒体支持,DataHandler使用@进行注释XmlAttachmentRef.通过Web服务进行序列化和流式处理(JBoss上的Metro)运行良好,但是使用JAXB进行简单的编组却没有.
这是一个精简的例子:
public class DataHandlerAttachmentSerialization {
@XmlRootElement
static class RootObject {
@XmlElement
@XmlAttachmentRef // Works without this, but required for streaming
DataHandler dataHandler = new DataHandler(
new com.sun.xml.ws.util.ByteArrayDataSource(
" ".getBytes(), "application/octet-stream"));
}
@Test
public void test() throws JAXBException {
JAXBContext context = JAXBContext.newInstance(RootObject.class);
Marshaller marshaller = context.createMarshaller();
StringWriter writer = new StringWriter();
marshaller.marshal(new RootObject(), writer);
Assert.assertNotNull(writer.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
运行此测试会产生以下堆栈跟踪:
javax.xml.bind.MarshalException
- with linked exception:
[com.sun.xml.bind.api.AccessorException: java.lang.NullPointerException]
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:318)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244)
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:96)
...
Caused …Run Code Online (Sandbox Code Playgroud) .net ×6
asp.net-mvc ×4
security ×2
wcf ×2
asp.net ×1
c# ×1
c++ ×1
certificate ×1
django ×1
forms ×1
interop ×1
java ×1
jax-ws ×1
jaxb ×1
python ×1
release-mode ×1
size ×1
sql ×1
t-sql ×1
views ×1
visual-c++ ×1
web-services ×1
xml ×1