使用视图模型托管Razor View引擎(Hosting the Razor View Engine using a view model)
我想在ASP.NET MVC之外使用Razor View Engine为电子邮件生成HTML,我喜欢语法,当我在项目中使用Razor时,似乎没有必要使用另一个模板引擎。
所以我环顾四周,找到了如何做到这个指南.. http://blog.andrewnurse.net/2010/11/16/HostingRazorOutsideOfASPNetRevisedForMVC3RC.aspx
不幸的是我无法找到任何指定视图模型的方法,这很难过,因为我真的非常希望即使对于我的电子邮件也有强类型视图。
那么有没有办法用强类型视图模型解析ASP.NET MVC之外的Razor模板,或者它是不是很麻烦,不值得麻烦?
I'd like to use the Razor View Engine outside of ASP.NET MVC to generate HTML for emails, I like the syntax and it seems unnecessary to use another templating engine when I already have Razor in my project.
So I looked around and found this guide on how to do it.. http://blog.andrewnurse.net/2010/11/16/HostingRazorOutsideOfASPNetRevisedForMVC3RC.aspx
Unfortunately I can't find any way of specifying a view model, which is sad because I would really, really like to have strongly typed views even for my emails.
So is there any way of parsing Razor templates outside of ASP.NET MVC with strongly typed view models or is it so much trouble it's not worth the hassle?
原文:https://stackoverflow.com/questions/4448740
最满意答案
您错误地使用InputStream.available方法。 此方法不会尝试检索数据。 实际上,此方法的大多数实现始终返回0.请参阅Inputstream可用参考 。 我建议您只删除可用的检查,并根据需要让readLine阻止。 BufferedReader.ready也是如此 - 通常这并不表示您在尝试读取时会获得任何数据,因此此调用也没有用。
You use InputStream.available method incorrectly. This method will not try to retrieve data. Actually most implementations of this method always return 0. See Inputstream available reference. I recommend you just remove available checks and let readLine block as needed. The same goes for BufferedReader.ready - generally this does not show that you will get any data when attempting to read so this call is also not useful.
相关问答
更多-
对于第二个问题:创建一个新的final用于可运行的应用程序 while ((line = r.readLine()) != null) { total.append(line); Log.d("Server response", line.toString()); final String status = line; handler.post(new Runnable() { public void run() { if (statu ...
-
TCP数据在发送方和接收方均缓冲。 接收方的套接字接收缓冲区的大小决定了有多少数据可以在没有确认的情况下处于运行状态,并且发送方的发送缓冲区的大小决定了在发送方阻止或获取EAGAIN / EWOULDBLOCK之前可以发送多少数据,具体取决于阻塞/阻塞模式。 您可以将这些套接字缓冲区设置为最大2 ^ 32-1个字节,但如果将客户端接收缓冲区设置为高于2 ^ 16-1,则必须在连接套接字之前完成此操作,以便TCP窗口缩放可以在连接握手中协商,以便高16位可以发挥作用。 [服务器接收缓冲区在这里是不相关的,但是 ...
-
套接字编程:socket_read,fgets无法获得响应(Socket programming: socket_read, fgets cannot get response)[2023-01-13]
至少你需要做一些错误检查。 也许这会有所帮助: $message = "api\tjson\tget\trooms\n"; $response = fsockopen("142.4.xxx.xxx", 5678, $errno, $errstr, 30); if (!$response) { echo "$errstr ($errno)
\n"; } else { $out = "POST /script.php HTTP/1.1\r\n"; $out .= "Host: ... -
带有Ruby,Thin和EventMachine的SIP TCP / IP套接字(SIP TCP/IP Socket with Ruby, Thin and EventMachine)[2022-07-19]
要在两台计算机之间建立连接,您需要两个地址和两个端口。 从你的代码: 服务器: vpbx.12connect.com:5060 : vpbx.12connect.com:5060 客户: **.***.**.**:? 客户端端口通常由操作系统选择,因此可能不是5060。 您可以以某种方式获取已使用的客户端端口并在SIP消息中传达此端口,或者在您的计算机上打开服务器,然后您可以将其绑定到特定端口(例如5060)。 对于SIP,我建议采用服务器方法,因为您必须在不连接服务器之前接收消息(INVITES)。 To ... -
参考此代码, import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; /** ...
-
您错误地使用InputStream.available方法。 此方法不会尝试检索数据。 实际上,此方法的大多数实现始终返回0.请参阅Inputstream可用参考 。 我建议您只删除可用的检查,并根据需要让readLine阻止。 BufferedReader.ready也是如此 - 通常这并不表示您在尝试读取时会获得任何数据,因此此调用也没有用。 You use InputStream.available method incorrectly. This method will not try to ret ...
-
套接字聊天编程(Socket chat programming)[2023-01-01]
如果您至少在Android v3.0上运行,则一次只能运行一个AsyncTask。 取消注释时,由于Receive正在运行,因此无法运行send。 一种替代方法是使用线程代替(例如,用于接收)。 查看此问题的详细信息 If you are running on Android v3.0 at least, you can run only one AsyncTask at a time. When uncommenting, since Receive is running, you cannot run ... -
我所做的只是对代码的一些修改。 我认为主要的变化是没有使用DataInputStream,因为文档明确表示不再使用这个数据结构中的readLine()。 http://download.oracle.com/javase/1.4.2/docs/api/java/io/DataInputStream.html#readLine%28%29 由于不需要,我也删除了授权内容。 如果您在某处运行此代码,您会注意到日志打印出HTTP响应。 String requestmsg = "GET /MOUNTPOINT" + ...
-
这个例子是tcp socket编程事件序列安全吗?(Is this example tcp socket programming sequence of events safe?)[2023-04-10]
是的,如果每次都创建一个新连接,这是安全的。 那说你的方法存在潜在的问题: TCP连接建立起来相当昂贵,因此您可能希望重新使用连接池的连接 如果您同时发出太多请求,则会耗尽端口/打开文件描述符,这会导致程序崩溃 您没有任何超时,因此最终可能会出现永远无法完成的孤立TCP连接(由于Go端的某些不良或网络问题) 我认为你最好不要使用HTTP(尽管有开销),因为已经编写了库以应对这些问题。 HTTP也可以调试,因为您只需卷曲端点来测试它。 就个人而言,我可能会选择gRPC 。 Yes this is safe i ... -
使用INADDR_ANY(或特定接口的地址)而不是INADDR_NONE。 INADDR_NONE是无符号常量,具有与有符号值-1相同的位模式,作为某些调用的错误指示返回。 Use INADDR_ANY (or a specific interface's address) rather than INADDR_NONE. INADDR_NONE is an unsigned constant with the same bit pattern as the signed value -1, returne ...