Так я получил эту WebProject я сейчас занимаюсь, и в 4/5 просмотров Im используяmvc4 ActionLink проходя переменную
@Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
Все мнения, вернуть меня в мой список Зависит мой «Создать новый взгляд» Это также будет единственным видом не загружать, что дает мне освобождение от «System.NullReferenceException»
Я смущен, почему это единственное представление, которое не позволит мне передать ему clientID (поскольку i нужно не только это, но также и идентификатор округа, чтобы создать новый округ, и, тем более, сообщая мне, что он является нулевым.
Если я удаляю строку кода выше моего кода, работает отлично (за исключением того, что я добавляю два поля ID в представление вида, очевидно), что заставило меня думать, что это может быть мой контроллер.
Вот мое действие от Givin контроллера для создания
// GET: /County/Create
public ActionResult Create()
{
return View();
}
для сравнения здесь является редактировать действие в том же контроллере
public ActionResult Edit(int id = 0)
{
dbCounty countys = db.Countys.Find(id);
if (countys == null)
{
return HttpNotFound();
}
return View(countys);
}
Я также судимым добавить этот код к созданию новым actionlink, когда я получаю эту ошибку
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Most likely causes:
The directory or file specified does not exist on the Web server.
The URL contains a typographical error.
A custom filter or module, such as URLScan, restricts access to the file.
Что я делаю неправильно здесь ....
Мой проект построен на модели иерархию, один клиент Многие Countys (если вам нужно больше кода, дайте мне знать)
заранее спасибо.
Совет:
должна быть причина (мое предположение), почему при удалении этой строки кода она работает (поэтому она должна быть эта строка кода ??) - должен быть другой путь прохождения он (ClientId имеет значение 1)
@Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
Edit Index контроллера, необходимый:
public ActionResult Index([Bind(Prefix="id")] int CID=0)
{
var clnt = db.Clients.Find(CID);
if (clnt != null)
{
return View(clnt);
}
return HttpNotFound();
}
EDIT: новый создать Acti на от Countys контроллер
public ActionResult Create(int id=0)
{
dbCounty countys = db.Countys.Find(id);
if (countys == null)
{
return HttpNotFound();
}
return View(countys);
}
я также судимым работаю
public ActionResult Create(int id=0)
{
dbClient Client = db.Clients.Find(id);
if (Client == null)
{
return HttpNotFound();
}
return View(Client);
}
(так как я пропускание ClientId - путь построены модели он должен добавить уездный идентификатор при создании этой новой строки в база данных с идентификатором clientID (passVariable)
ок. поэтому я разместил @ Html.ActionLink («Создать новый», «Создать»), новый {CID = Model.ClientID}) в моем индексе, я прошел через clientID равным 1, когда я нажимаю на него, он взрывается, а не дает мне шанс попасть в Create Action от Countys Controller ..., хотя я изменил свой контроллер создания, отредактировал его за несколько секунд. – Pakk
Похоже, вы на правильном пути, но теперь вы проходите мимо id как «CID» в представлении индекса, и ожидая, что int-name «id» в контроллере Create. Если вы сделаете их одинаковыми, я думаю, что это сработает для вас. – Lily
genious, kinda rediculous, что вам нужно передать переменную, которую он ожидает, ха-ха, но потом снова im от vb.net, и он никогда не делал diff, спасибо @lily – Pakk