Я пытаюсь создать несколько целевых страниц с помощью формы запроса на контакт, но не могу сделать эту форму частичным, так как она использует «asp-for» для привязки к классу в отдельном файле класса.и, очевидно, частичное представление cshtml не распознает класс деталей.
При реализации формы внутри главной страницы (представление) она работает отлично.страница имеет модель, и эта модель имеет свойство класса details, которое связывается с полями формы с помощью asp-for.Но если переместить эту форму в частичное представление, значение asp-for не распознается, поскольку ... он не может знать о своем родительском свойстве в модели.
Мне кажется, что я все делаю неправильно.
Это в моем частичном представлении в _ComtactRFormPartial.cshtml (удаленные метки и элементы стиля):
<form method="POST">
<input asp-for="Contact.Email" type="email" required name="Email"
<input asp-for="Contact.Phone" type="tel" required name="Phone"
<label asp-for="Contact.Name">שם מלא:</label>
<input asp-for="Contact.Name" type="text" required name="Name"
<input asp-for="Contact.ConPref" type="radio" name="ConPref"
id="ConPref" value="whatsapp" />
<input asp-for="Contact.ConPref" type="radio" name="ConPref"
id="ConPref" value="email" checked />
<input id="Submit1" type="submit" value="שלח" />
</form>
класс сведений:
public class ConDataFormClass
{
[Required(ErrorMessage = "אנא כתוב שם מלא"), MinLength(4,
ErrorMessage = "קצר מדי. האם הכנסת שם מלא?")]
public string Name { get; set; }
[Required(ErrorMessage = "שדה חובה", AllowEmptyStrings = false),
EmailAddress]
public string Email { get; set; }
[Required(ErrorMessage = "שדה חובה", AllowEmptyStrings = false),
Phone]
public string Phone { get; set; }
[Required]
public string ConPref { get; set; }
public bool bodymail = true;
public string bodymailCol { get; set; }
public string bodymailTtl { get; set; }
public string bodumailMsg { get; set; }
}
Класс включает другие используемые поляв сообщениях об ошибках и успехах.
Теперь в представлении хостинга help.cshtml:
@page
@model AurlZcom.Pages.helpModel
@{
ViewData["Title"] = "Help Screen - מסך עזרה";
Layout = "~/Pages/Shared/_LandingLayout.cshtml";
}
...
@Html.Partial("_ComtactRFormPartial.cshtml")
help.cshtml.cs:
...
public class helpModel : PageModel
{
[BindProperty]
public ConDataFormClass Contact { get; set; }
public EMsendersClass esender;
public void OnGet()
{
Contact = new ConDataFormClass();
}
public async Task OnPost()
{
esender = new EMsendersClass(
sending server parameter list
);
await esender.Send(Contact,"Help Screen");
}
}
EMsendersClass - это Warp SmtpClient I 'мы создали то, что работает для меня.Метод Send отправляет электронное письмо, используя информацию о сервере из параметров конструктора EMsendersClass, данные из Contact и общую строку заголовка.
Примечание: вы можете увидеть тарабарщину там, где есть текст на иврите.Макет включает в себя все необходимые метатеги и работает хорошо.
Поскольку у меня есть инвалидность, ограничивающая движение, написание минимального кода является большой целью, поэтому повторное использование кода является «высоким приоритетом».Я надеюсь использовать эту форму запроса контакта на нескольких целевых страницах.Как я могу это сделать?