skip to Main Content

I have an MVC app that works perfectly in debug mode and testing, but after I publish using ftp to godaddy, the website opens up and works when toggling between the home page and the login page. If I try logging in I get an error or if I try using the search box on my homepage, I also get an error. Here is the screenshot: Error

After I log in or basically anything or than 'mydomain'.com/Home/Index/ I get this error, if I try 'mydomain'.com/Home/Search or 'mydomain'.com/Search/Index any other controller or action I get this. What could be the cause because I have tried everything? For example is HomeController/Search:

public ActionResult Search(string search, string searchlast)
    {
        var doctors = from d in db.Doctors
                      select d;
        if (!String.IsNullOrEmpty(search) || !String.IsNullOrEmpty(searchlast))
        {
            doctors = doctors.Where(d => d.FirstName.Contains(search) && d.LastName.Contains(searchlast));
            return View(doctors.ToList());
        }
        return RedirectToAction("Index", "Home");
    }

Here is Views/Home/Search which gives the error:

@model IEnumerable<Systemz.Models.Check>
@{
    ViewBag.Title = "Search";
}

<div class="jumbotron">
    <h2>Check</h2>
    <h4>Check for availability.</h4>
</div>

@using (Html.BeginForm("Search", "Home", FormMethod.Post))
{
    <p>
        First Name: @Html.TextBox("search") Last Name: @Html.TextBox("searchlast")
        <input type="submit" value="Search" name="search" />
        <a asp-action="Search" asp-controller="Home"></a>
    </p>
}

<table class="table table-hover dataTable">
    <div class="row">
        <div class="col-md-4">
            <thead class="bd-dark white-text">
                <tr>
                    <th>
                        Title:
                    </th>
                    <th>
                        First Name:
                    </th>
                    <th>
                        Last Name:
                    </th>
                    <th>
                        Address:
                    </th>
                    <th>
                        Is Available?
                    </th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in Model)
                {
                    <tr>
                        <td>
                            @Html.DisplayFor(modelItem => item.Title)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.FirstName)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.LastName)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.Address)
                        </td>
                        <td>
                            @if (item.IsAvailable == true)
                            {<p><a class="btn btn-success"></a></p> }
                            else
                            { <p><a class="btn btn-danger"></a></p>}
                        </td>
                    </tr>
                }
            </tbody>
        </div>
    </div>
</table>

2

Answers


  1. Chosen as BEST ANSWER

    The answer from @Daniel Lorenz helped a bit, I originally thought it could be the <connectionString/> then I thought it could be routing when I posted the question, after the answer was posted I figured out it was the <connectionString/> and db update with the DbContextName. After getting the correct

    <add name="DbContextName" connectionString="DataSource=ServerName;
        Integrated Security=False;Initial Catalog=DbName;User Id=username;
            Password=password;Encrypt=False;Packet Size=4096;" providerName=
                "System.Data.SqlClient" />
    

    Then in the Package Manager Console:

    update-database -ConnectionStringName "DbContextName"
    

    Then publish and all works well.


  2. You have to upload your database. There is no such thing as (LocalDb) on your Godaddy hosted server. You have to upload your database to Godaddy as well, figure out the connection string to that location, and then have that deploy correctly with your site. If there isn’t any firewalls in front of it, you can even test the connection to that database from your local machine.

    Edit: And it isn’t enough to just upload your database file. You have to setup the database through their own tool so it attaches correctly and all that.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search