Aayush Patil
Aayush Patil

Reputation: 21

how to pass parameter to controller from viewpage in mvc

please help me. i can not bind the input parameter from textbox in to actionmethod

Controller code:

public ActionResult CheckUser(string empCode)   // ActionMethod with parameter
{
    try
    {
        string res = "";
        DataSet dataSet = new DataSet();
        using (SqlConnection connection = new SqlConnection(ConnectionString))
        {
            using (SqlCommand command = new SqlCommand("spUserCheck"))
            {
                command.Parameters.AddWithValue("@UserCode", empCode);
                command.CommandType = CommandType.StoredProcedure;
                connection.Open();
                command.Connection = connection;
                SqlDataAdapter dataAdapter = new SqlDataAdapter();
                dataAdapter.SelectCommand = command;
                dataAdapter.Fill(dataSet);
                connection.Close();
            }
        }
        if (dataSet.Tables.Count > 0)
        {
               res = "Alredy Avilable";
        }
        else
        {
            res = "Not Avilable. Please create user";                        
        }
        return View(res) ;
    }
    catch (Exception ex)
    {
        throw new Exception("Error ", ex);
    }
}

ViewCode:-

<div class="form-group">
    <label class="control-label col-sm-2">Employee Code <span class="mandatory"></span>:</label>
    <div class="col-sm-3">
        <input type="text" class="form-control input-md" id="empCode" placeholder="Enter employee code" />
    </div>
    <div class="col-sm-2">
        <input type="button" class="btn btn-info" onclick="location.href='@Url.Action("CheckUser", "User")'" id="btnAvaiaable" value="Check Availability ?" />
    </div>
</div>

ModelCode

public class UserParameter
{
    public string empCode { get; set; }
    public string Role { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string EmailID { get; set; }
    public int MobileNo { get; set; }
    public string Zone { get; set; }
    public string State { get; set; }
    public string Branch { get; set; }
    public string CompanyType { get; set; }
}

Upvotes: 0

Views: 706

Answers (1)

AUSteve
AUSteve

Reputation: 3258

First issue is you need a textbox with attribute name="empCode".

Second, you need to wrap the textbox in a form element.

Third, you need to post to the controller. Just changing the location in a button click (as you are doing) will do a get with no form data attached.

There are plenty of samples online which show this.

Upvotes: 1

Related Questions