2012-03-22 2 views
1

Является новым для MVC.Am, используя следующую программу, используя asp.net MVC3 с sql server 2005. Я использую следующий код, который он работал правильно. И мой вопрос заключается в том, как изменить эту программу, как, как получить значения из CURL (php) вместо значений формы регистрации и добавить эти значения в SQL Server 2005?Как получить значения CURL внутри mvc3?

UserManager.cs 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using MvcDemo.Models.DB; 
using MvcDemo.Models.ViewModels; 

namespace MvcDemo.Models 
{ 
    public class UserManager 
    { 
     private UserView obj = new UserView(); 

     public void Add(UserView user) 
     { 
      obj.FirstName = user.FirstName; 

      DB.Signup sysUser = new Signup(); 
      sysUser.FirstName = user.FirstName; 
      sysUser.LastName = user.LastName; 
      sysUser.Contactnumber = Int32.Parse(user.ContactNumber); 
      sysUser.LoginID = user.LoginID; 
      sysUser.Password = user.Password; 
      obj.AddToSysUsers(sysUser); 
         } 

       } 
} 

AccountController.cs 


using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Security; 
using MvcDemo.Models.ViewModels; 
using MvcDemo.Models; 


namespace MvcDemo.Controllers 
{ 

    public class AccountController : Controller 
    { 

     public ActionResult SignUp() 
     { 
      return View("SignUp"); 
     } 




     [HttpPost] 
     public ActionResult SignUp(UserView user) 
     { 
      try 
      { 
       if (ModelState.IsValid) 
       { 
        UserManager userManager = new UserManager(); 

         userManager.Add(user); 
         FormsAuthentication.SetAuthCookie(user.FirstName, false); 
         return RedirectToAction("Welcome", "Home"); 

       } 
      } 
      catch 
      { 
       return View(user); 
      } 

      return View(user); 
     } 
    } 
} 

Userview.cs 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data; 
using System.Data.SqlClient; 
using System.ComponentModel.DataAnnotations; 



namespace MvcDemo.Models.ViewModels 
{ 

    public class UserView 
    { 


     [Required] 
     [Display(Name = "First Name")] 
     public string FirstName { get; set; } 

     [Required] 
     [Display(Name = "Last Name")] 
     public string LastName { get; set; } 

     [Required] 
     [Display(Name = "Contact Number")] 
     public string ContactNumber { get; set; } 

     [Required] 
     [Display(Name = "Login ID")] 
     public string LoginID { get; set; } 

     [Required] 
     [Display(Name = "Password")] 
     public string Password { get; set; } 



     public void AddToSysUsers(DB.Signup sysUser) 
     { 
      try 
      { 
       string con = System.Configuration.ConfigurationManager.ConnectionStrings["traineeEntities"].ConnectionString; 
       SqlConnection co = new SqlConnection(con); 
       co.Open(); 
       String str = "Insert into Signup values('"+sysUser.FirstName+"','"+sysUser.LastName+"',"+sysUser.Contactnumber+",'"+sysUser.LoginID+"','"+sysUser.Password+"')"; 
       SqlCommand cmd = new SqlCommand(str, co); 
       cmd.ExecuteNonQuery(); 
      } 
      catch (Exception ex) 
      { 
       //Message=Error Creating User: User already exists 
      } 

     } 
    } 
} 

Signup.cshtml 

@model MvcDemo.Models.ViewModels.UserView 

@{ 
    ViewBag.Title = "SignUp"; 
} 

<h2>Sign-Up</h2> 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>UserView</legend> 


     <div class="editor-label"> 
      @Html.LabelFor(model => model.FirstName) 
     </div> 

     <div class="editor-field"> 
      @Html.EditorFor(model => model.FirstName) 
      @Html.ValidationMessageFor(model => model.FirstName) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.LastName) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.LastName) 
      @Html.ValidationMessageFor(model => model.LastName) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.ContactNumber) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.ContactNumber) 
      @Html.ValidationMessageFor(model => model.ContactNumber) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.LoginID) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.LoginID) 
      @Html.ValidationMessageFor(model => model.LoginID) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Password) 
     </div> 
     <div class="editor-field"> 
      @Html.PasswordFor(model => model.Password) 
      @Html.ValidationMessageFor(model => model.Password) 
     </div> 

     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

<div> 
    @Html.ActionLink("Return to Home page","Index", "Home") 
</div> 

ответ

0

У меня трудное понимание того, что вы на самом деле хотите сделать. Однако, если я понимаю вас правильно, вы хотите отправить форму регистрации через PHP и cURL. Это, как вы бы представить HTTP сообщение с помощью Curl:

<?php 
$data = array(
    'FirstName' => 'The firstname value', 
    'LastName ' => 'The lastname value', 
    'ContactNumber ' => 'The contactnumber value', 
    'LoginID ' => 'The loginid value', 
    'Password ' => 'The password value' 
); 

$post = http_build_query($data); 

$url = 'http://url_to_your_server/Account/SignUp/'; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
$response = curl_exec($ch); 

var_dump($response); 
+0

Как я могу опубликовать значения (параметры) в Curl и как я могу получить эти значения в mvc? – user

+0

Используйте фрагмент, который я опубликовал, чтобы опубликовать значения в вашем MVC-контроллере. В действии 'SignUp' вы можете получить доступ к каждому параметру, используя' user.FirstName', 'user.LastName' и т. Д. – alexn

0

Не совсем уверен, что вы имеете в виду, получая зарегистрируйся переменных форм, вы должны легко быть в состоянии сделать это от модели, передаваемой в ваши действия ,

Если вы имеете в виду, как вы получите внешние значения, которых нет в модели, вам нужно будет использовать. Недвижимость Request.

public ActionResult Register(...) { 
    var x = Request.Form["your form value here"] // for forms 
    var y = Request.QueryString["your query string value here"] // for query strings 
    var z = Request.Headers["for headers"] // for headers 
    ... etc ... 
} 

Если вы можете дополнительно уточнить свой вопрос, вы можете получить некоторые лучшие ответы, а прямо сейчас мы неясны о ваших целях.

Смежные вопросы