有人可以告诉我如何检查记录是否存在,如果它确实存在然后什么也不做,如果没有,那么将记录添加到数据库中?
请参阅下面的代码:
if (isIpnValidated == true)
{
using (WebApplication1Entities db = new WebApplication1Entities())
{
Orders order = new Orders();
order.UserId = userId;
order.Date = System.DateTime.Now;
order.Transaction = txnId;
order.Amount = Convert.ToDecimal(mcGross);
order.Email = payerEmail;
order.Country = residenceCountry;
db.Orderss.Add(order);
db.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
我只是想确保数据库中没有可能的重复.
有人可以提供一个如何在一个视图中组合两个模型的示例吗?
目前我有一个名为RecordCard的页面,其中包含:
@model IEnumerable<WebApplication1.Models.Weight>
Run Code Online (Sandbox Code Playgroud)
这由AccountController中的以下代码提供:
public ActionResult RecordCard()
{
var UserId = User.Identity.GetUserId();
var weightModel = from m in db.Weights where m.UserId == UserId select m;
return View(weightModel);
}
Run Code Online (Sandbox Code Playgroud)
RecordCard页面还包含一个绑定到以下类的表单:
public class AddWeightModel
{
[Required]
[DataType(DataType.Text)]
[Display(Name = "Stone")]
public Nullable<short> Stone { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Pound")]
public Nullable<short> Pound { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是,这些是具有不同目的的两个单独模型,因此如何组合到包含IEnumerable列表和一组表单元素的单个模型,这些元素最终将正确地发布到AccountController以使用以下代码将记录添加到数据库:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult RecordCard(Weight Model)
{
if (ModelState.IsValid)
{
using (WebApplication1Entities db = new WebApplication1Entities())
{
Weight weight = …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人可以帮助提供MVC联系表格,该表格在提交时发送电子邮件?我认为我有大多数元素设置,但由于某种原因,表单似乎发送(需要年龄)然后只返回到表单,没有收到电子邮件.
MailModels.cs:
namespace WebApplication1.Models
{
public class MailModels
{
public string Name { get; set; }
public string Email { get; set; }
public string Telephone { get; set; }
public string Message { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
Contact.cshtml:
@using (Html.BeginForm("Contact", "Home", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @id = "contact-form", role = "form" }))
{
@Html.ValidationSummary()
<fieldset>
<div class="form-div-1">
<label class="name">
@Html.TextBoxFor(m => m.Name, new { @placeholder = "Name *", @type = "text" })
</label> …Run Code Online (Sandbox Code Playgroud) 出于某种原因,我还没有发现,但在注册和激活成功后,我无法使用电子邮件地址登录,而是收到错误"无效登录尝试".
由于使用电子邮件登录改进了ASP.NET Identity 2.0,我已经修改了注册表单以实际存储真实用户名,因为现有注册似乎通过将Username与电子邮件地址一起存储来复制.
请参阅下面Install-Package Microsoft.AspNet.Identity.Samples -Pre'创建空ASP.NET Web应用程序(MVC)项目后随附的标准代码:
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
Run Code Online (Sandbox Code Playgroud)
我的功能现在如下:
var user = new ApplicationUser { TitleId = model.TitleId, SexId = model.SexId, Forename = model.Forename, Surname = model.Surname, UserName = model.UserName, Email = model.Email, JoinDate = System.DateTime.Now };
Run Code Online (Sandbox Code Playgroud)
如您所见,UserName现在从表单接收值.这一切都很好,除了现在我注册和激活后无法登录.唯一的工作是通过将电子邮件字段中的值放入UserName字段来修改记录,这似乎是愚蠢的.
有人可以告诉我可能错过了什么吗?
我配置了多个路由,但由于某些原因,尽管规则处理不同的控制器和不同的视图,但不同的链路路由到同一视图.请看下面,我已经包含了我的RouteConfig文件和下面的示例链接:
RouteConfig.cs
using System.Web.Mvc;
using System.Web.Routing;
namespace WebApplication1
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Account",
url: "Account/{action}/{id}",
defaults: new { controller = "Account", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Member",
url: "Member/{action}/{id}",
defaults: new { controller = "Member", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Root",
url: "{action}/{id}",
defaults: new { controller = "Home", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人可以帮助演示如何在ASP.NET Core中创建IHtmlContent或HtmlString,这与我以前在MVC5中所做的类似。我通常会在Helper类中声明一个新的MvcHtmlString方法,如下所示:
HtmlExtender.cs
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace WebApplication1.Helpers
{
public static class HtmlExtender
{
public static MvcHtmlString MenuLink(this HtmlHelper htmlHelper, string linkText, string controller, string action, string area, string anchorTitle)
{
var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
var url = urlHelper.Action(action, controller, new { area });
var anchor = new TagBuilder("a") {InnerHtml = HttpUtility.HtmlEncode(linkText)};
anchor.MergeAttribute("href", url);
anchor.Attributes.Add("title", anchorTitle);
var listItem = new TagBuilder("li") {InnerHtml = anchor.ToString(TagRenderMode.Normal)};
if (CheckForActiveItem(htmlHelper, controller, action, area))
{
listItem.GenerateId("menu_active");
}
return MvcHtmlString.Create(listItem.ToString(TagRenderMode.Normal)); …Run Code Online (Sandbox Code Playgroud) 我正在使用 6.0.20 我在服务器上运行了许多 Web 应用程序,随着时间的推移,大约 3 天,服务器需要重新启动,否则服务器崩溃并变得无响应。
我有以下 JVM 设置:
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=c:\tomcat\Websites\private\mydomain\apache-tomcat-6.0.20\logs
Run Code Online (Sandbox Code Playgroud)
这为我提供了一个 hprof 文件,我使用 Java VisualVM 加载了该文件,该文件标识了以下内容:
byte[] 37,206 Instances | Size 86,508,978
int[] 540,909 Instances | Size 55,130,332
char[] 357,847 Instances | Size 41,690,928
Run Code Online (Sandbox Code Playgroud)
列表还在继续,但我如何确定导致这些问题的原因?
我正在使用 New Relic 来监控 JVM,似乎只出现了一个错误,但它是一个重复出现的错误,org.apache.catalina.connector。客户端中止异常。是否有可能在用户会话中止时,创建的任何数据库连接或变量都没有关闭,从而成为孤立的?
有一个函数在每个 Web 应用程序中都被大量使用,不确定这是否与泄漏有关:
public static String replaceCharacters(String s)
{
s = s.replaceAll(" ", " ");
s = s.replaceAll(" ", "_");
s = s.replaceAll("\351", "e");
s = s.replaceAll("/", "");
s = s.replaceAll("--", "-");
s = s.replaceAll("&", "and");
s = …Run Code Online (Sandbox Code Playgroud) 我在我的智慧结束,我似乎无法发布消息作为页面,我可以作为管理员用户发布到Facebook页面,但不作为所有者本身发布到页面.
我的代码如下:
String MY_APP_ID = "xxxx";
String MY_APP_SECRET = "xxxx";
AccessToken accessToken = new DefaultFacebookClient().obtainAppAccessToken(MY_APP_ID, MY_APP_SECRET);
DefaultFacebookClient facebookClient = new DefaultFacebookClient(accessToken.getAccessToken());
FacebookType publishMessageResponse = facebookClient.publish("me/feed", FacebookType.class, Parameter.with("message", fbMessage));
fbMessageID = publishMessageResponse.getId();
Run Code Online (Sandbox Code Playgroud)
我相信上面的代码获得了App Access令牌,但是我收到以下错误:
OAuthException: An active access token must be used to query information about the current user.
Run Code Online (Sandbox Code Playgroud)
我有以下权限设置:
publish_actions, manage_pages, publish_stream
Run Code Online (Sandbox Code Playgroud)
如果我将代码修改为:
FacebookType publishMessageResponse = facebookClient.publish("MYAPPNAME/feed", FacebookType.class, Parameter.with("message", fbMessage));
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
OAuthException: (#200) The user hasn't authorized the application to perform this action.
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多这方面的内容,但看不到木头的树木,有人可以解释我哪里出错了,以及如何解决这个噩梦.
任何帮助将非常感激 :-)
有人可以演示如何在 ASP.NET Core 中成功声明依赖于主机名的静态项目变量吗?
以前,我有类似于下面的代码,使用 Global.asax 来识别项目运行的主机名,并设置整个项目可以使用的一些简单的静态变量,如“MvcApplication.Colour”
public static string Colour;
public static string ConnectionString;
public static string HostName = System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName().ToLower();
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
ProjectSettings();
}
public static void ProjectSettings()
{
switch (HostName)
{
case "external-domain":
ConnectionString = WebConfigurationManager.ConnectionStrings["External"].ToString();
Colour = "blue";
break;
case "internal-domain":
ConnectionString = WebConfigurationManager.ConnectionStrings["Internal"].ToString();
Colour = "purple";
break;
default:
ConnectionString = WebConfigurationManager.ConnectionStrings["Test"].ToString();
Colour = "red";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我见过将 AppSetting 传递给 HomeController 的示例,例如:
public class HomeController : Controller
{
private readonly …Run Code Online (Sandbox Code Playgroud) 有人可以查看以下代码,看看是什么导致错误"处理您的请求时出错".我使用的是ASP.NET Identity 2.0,请参阅下面的代码:
IdentityConfig
public class EmailService : IIdentityMessageService
{
public Task SendAsync(IdentityMessage message)
{
// Plug in your email service here to send an email.
var credentialUserName = "info@ourdoamin.com";
var sentFrom = "noreply@ourdoamin.com";
var pwd = "ourpassword";
// Configure the client:
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("mail.ourdoamin.com");
client.Port = 25;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
// Creatte the credentials:
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(credentialUserName, pwd);
client.EnableSsl = false;
client.Credentials = credentials;
// Create the message:
var mail = new …Run Code Online (Sandbox Code Playgroud) c# ×6
asp.net ×2
forms ×2
java ×2
asp.net-core ×1
facebook ×1
jsp ×1
memory ×1
memory-leaks ×1
models ×1
restfb ×1
smtpclient ×1
tomcat ×1
url-routing ×1