Здравствуйте коллеги!
собственно вопрос в следующем:
Есть вот такая контролка:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public PartialViewResult GetPlain()
{
var plains = db.Plains
.Include(p => p.area)
.Include(p => p.driver)
.Include(p => p.stat)
.Take(5)
.OrderByDescending(p => p.ID);
return PartialView(plains.ToList());
}
Есть другая контролка где вызывается процедура:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(sqlExpression, connection);
// указываем, что команда представляет хранимую процедуру
command.CommandType = CommandType.StoredProcedure;
SqlParameter nameParam = new SqlParameter
{
ParameterName = "@plain_dt_begin",
Value = PlainsDtBegin
};
command.Parameters.Add(nameParam);
SqlParameter plain_dt_end = new SqlParameter
{
ParameterName = "@plain_dt_end",
Value = PlainsDtEnd
};
command.Parameters.Add(plain_dt_end);
SqlParameter date = new SqlParameter
{
ParameterName = "@plain_date",
Value = PlainsDate
};
command.Parameters.Add(date);
var result = command.ExecuteNonQuery();
connection.Close();
}
return RedirectToAction("GetPlain");
Во вьювере AJAX:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<form class="form-horizontal validate" id="validate"
data-ajax="true"
data-ajax-mode="replace"
data-ajax-update="#results"
role="form"
method="post"
action="/Plains/AddPlain">
@Html.AntiForgeryToken()
<div class="row">
<div class="col-md-4">
<div class="text-left form-group has-feedback row">
<label for="login" class="text-left control-label col-md-6 col-lg-6">Дата:</label>
<div class="editor-field col-md-6 col-lg-6 ">
@Html.TextBoxFor(model => model.PlainsDate, new { @class = "form-control required" })
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group has-feedback row">
<label for="login" class="control-label col-md-6 col-lg-6">Дт на начачало смены:</label>
<div class="editor-field col-md-6 col-lg-6">
@Html.TextBoxFor(model => model.PlainsDtBegin, new { @class = "form-control required" })
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group has-feedback row">
<label for="login" class="control-label col-md-6 col-lg-6">Дт на конец смены:</label>
<div class="editor-field col-md-6 col-lg-6">
@Html.TextBoxFor(model => model.PlainsDtEnd, new { @class = "form-control required" })
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-5 col-xs-7">
<input type="submit" id="save" class="btn btn-primary" value="Добавить" />
</div>
</div>
</form>
Вводим данные отправляем параметры в контролер, эти параметры передаются в процедуру, потом заносятся в БД. В принципе все работает НО в БД добавляется 2 одинаковые строки. Вот я не могу понять почему строки дублируются? Если не использовать аякс, то добавляется только одна строка, но тогда перегружается вся страница что крайне не удобно. Подскажите пожалуйста что не так? что мне исправить?
Вот это аякс обновляет:
1.
2.
3.
<tbody id="results">
@Html.Action("GetPlain", "Plains")
</tbody>