Есть ли веская причина НЕ использовать ViewComponent вместо частичного представления в ядре MVC?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли веская причина НЕ использовать ViewComponent вместо частичного представления в ядре MVC?

Сообщение Anonymous »

Я новичок в MVC и решил начать с .net-core, поэтому у меня нет особого понимания различий между основной и более старыми версиями. Я нашел приведенный ниже вопрос, который дает некоторую информацию, но не помог мне решить, могу ли я игнорировать частичные представления.

Почему нам следует использовать компоненты представления функций MVC 6 вместо частичного представления: в чем разница?

Мой вопрос простой: если я могу что-то сделать с помощью ViewComponent, есть ли веская причина не делать этого?

Большое спасибо!

Пример приведен ниже для контекста.

Вызовы основного представления:

ViewComponent:


@await Component.InvokeAsync("CreatePerson", new Person())



По сравнению с частичным просмотром:


@{ await Html.RenderPartialAsync("People/CreatePartialView", new Person());}



Javascript (personCreateForm — это форма в компоненте частичного представления/представления):

var submitPersonCreate = function(evt) {

evt.preventDefault();
if ($(this).valid())
{
$.ajax({
type: "POST",
url: '@Url.Action("CreatePartial", "People")',
data: $('#personCreateForm').serialize(),
success(data) {
if (data === true)
window.location.reload();
else
$('#modalPersonInner').html(data);
}
});
}

return false;
}
$('#personCreateForm').submit(submitPersonCreate);


Код контроллера:

public async Task CreatePartial(
[Bind("AddressLine1,AddressLine2,AddressLine3,AddressLine4,City,Country,Email,Forename,MobileNumber,Postcode,Region,Surname,TelephoneNumber")] Person person)
{
if (ModelState.IsValid)
{
_context.Add(person);
await _context.SaveChangesAsync();
return Json(true);
}
//PARTIAL VIEW VERSION
//return PartialView("People/CreatePartialView",person);

//VIEWCOMPONENT VERSION
return ViewComponent("CreatePerson", person);
}


Код ViewComponent:

public class CreatePersonViewComponent : ViewComponent
{
private readonly AppDbContext db;

public CreatePersonViewComponent(AppDbContext context)
{
db = context;
}

public async Task InvokeAsync(Person person )
{

return View(person ?? new Person());
}

}


И, наконец, страница Razor, к о т о р а я о д и н а к о в а д л я о б о и х : < / p > < b r / > < b r / > < c o d e > @ m o d e l P e r s o n < b r / > < b r / > & l t ; f o r m I D = " p e r s o n C r e a t e F o r m " & g t ; < b r / > & l t ; d i v c l a s s = " f o r m - h o rizontal">

Customer























































































Подробнее здесь: https://stackoverflow.com/questions/382 ... al-view-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»