Why return an object at all, when the return is always going to be a string?
Something more along the lines of...
public string VerifyAllocDest(string destination)
{
string result = null;
try
{
using (var con = new SqlConnection(sqlconn_cmsstr))
{
con.Open();
var cmd = new SqlCommand("bms_destinationvalidate", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Accountnumber", Session["User_id"]);
cmd.Parameters.AddWithValue("@DestNo", destination);
using (var dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
result = "0";
}
else
{
result = "1";
}
}
}
}
catch (Exception ex)
{
result = "-1";
}
return result;
};