C# ASP.NET MVC邀请系统
我需要在我的网站上支持邀请,以便会员可以邀请朋友加入C# ASP.NET MVC邀请系统,c#,asp.net-mvc,C#,Asp.net Mvc,我需要在我的网站上支持邀请,以便会员可以邀请朋友加入 有没有现成的组件可以为我做到这一点,而不是从头开始?我不知道有任何类似于ASP.NET MVC的“即插即用”系统,但您可以自己轻松实现基本的系统 创建一个控制器,如下所示: using System.Net.Mail; namespace InTouch.Controllers { public class YourApp.Controllers { public ActionResult Index() {
有没有现成的组件可以为我做到这一点,而不是从头开始?我不知道有任何类似于ASP.NET MVC的“即插即用”系统,但您可以自己轻松实现基本的系统 创建一个控制器,如下所示:
using System.Net.Mail;
namespace InTouch.Controllers
{
public class YourApp.Controllers
{
public ActionResult Index()
{
return View();
}
[AcceptVerbs("POST")]
public ActionResult Index(string fromname, string fromemail, string toname, string toemail)
{
const string emailregex = @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
var result = false;
ViewData["fromname"] = fromname;
ViewData["fromemail"] = fromemail;
ViewData["toname"] = toname;
ViewData["toemail"] = toemail;
if (string.IsNullOrEmpty(fromname)) ViewData.ModelState.AddModelError("name", "Please enter your name!");
if (string.IsNullOrEmpty(fromemail)) ViewData.ModelState.AddModelError("email", "Please enter your e-mail!");
if (!string.IsNullOrEmpty(fromemail) && !Regex.IsMatch(fromemail, emailregex)) ViewData.ModelState.AddModelError("email", "Please enter your e-mail!");
if (string.IsNullOrEmpty(toname)) ViewData.ModelState.AddModelError("comments", "Please enter a message!");
if (!string.IsNullOrEmpty(toemail) && !Regex.IsMatch(toemail, emailregex)) ViewData.ModelState.AddModelError("email", "Please enter a valid recipient e-mail!");
if (!ViewData.ModelState.IsValid) return View();
var message = new MailMessage(fromemail, toemail)
{
Subject = "You have been invited to MyNewApp by " + fromname + "!",
Body = fromname + " wants to invite you. Click my link httpwwwblahblah to join them!"
};
SmtpClient smtp = new SmtpClient();
try
{
smtp.Send(message);
result = true;
}
catch { }
return View("Thankyou");
}
}
}
然后您只需要表单的视图。类似的东西,根据您的口味设计:
<form id="invite" method="post">
<fieldset><legend>Invite a friend!</legend>
<%=Html.ValidationMessage("fromname")%>
<%=Html.ValidationMessage("fromemail")%>
<%=Html.ValidationMessage("toname")%>
<%=Html.ValidationMessage("toemail")%>
Your Name: <input type="text" id="fromname" name="fromname" class="required" value="<%= ViewData["fromname"] ?? "" %>" /><br />
Your Email: <input type="text" id="fromemail" name="fromemail" class="required" value="<%= ViewData["fromemail"] ?? "" %>" /><br />
Friend's Name: <input type="text" id="toname" name="toname" class="required" value="<%= ViewData["toname"] ?? "" %>" /><br />
Friend's Email: <input type="text" id="toemail" name="toemail" class="required" value="<%= ViewData["toemail"] ?? "" %>" /><br />
<input type="submit" id="action" name="action" value="Submit" />
</fieldset></form>
邀请一个朋友!
您的姓名:
您的电子邮件:
朋友的名字:
朋友的电子邮件:
应该在不使应用程序的其余部分复杂化的情况下完成此操作 首先,有一些提供程序可以很好地与Web服务和其他通信方法交互。尝试搜索适合您需要的邀请API。我不会像其他人建议的那样设置一个“电子邮件邀请”控制器,当你自己发送邮件时会有“危险” 假设你正在开发的页面有很多访问者,比如一次有2000个访问者,他们都想邀请10个朋友,现在有20000个邀请。如果你要从你的服务器请求20000个SMTP发送,很多服务器会将你列入黑名单,现在这不好 因此,您需要创建一个更高级的邀请流程,您可以将所有邀请存储在数据库中,并使用调度程序每分钟发送10封邮件,或者使用第三方提供商来处理大量邀请 永远不要想太小
如果你想通过facebook、myspace、twitter或任何你可能想到的方式进行邀请,有一些API并不难管理。虽然你所说的肯定是正确的,但我提供的示例旨在作为一个非常基本、简单的示例来启动和运行。用户可以从那里自由地扩展它。附言:通常情况下,考虑得太小,需要晚些修改,要比考虑得太大,永远完成不了任何事情要好;)我不介意,考虑小问题会导致设计糟糕的软件。考虑大和现实会导致可扩展的软件。如果你最终在一个拥有无限资源和固定预算的商业环境中工作,那么是的,这是一个很好的方法。大多数人没有一个支持这种理想主义方法的奢侈环境,需要“完成事情”的严酷现实很快变得显而易见。也许我们应该在metastackoverflow上继续:PHi All,真的我需要两个答案,我需要一些简单的东西,如果社区成员增加,不要制造问题