Hello everybody,
a couple of things I'd like to improve in my code.

I'm working on a plugin to learn about nopCommerce and related stuff (C#, MVC and the alike).

I have a form in my plugin configuration cshtml which is able to post files and process them.

Issue #1 is whether I should use something like this:

@using (Html.BeginForm(
    null,
    null,
    FormMethod.Post,
    new { enctype = "multipart/form-data" })
)


instead of directly typing:

<form method="post" enctype="multipart/form-data" novalidate="novalidate">


The issue with the BeginForm is that instead of posting to:

http://localhost/Admin/Plugin/ConfigureMiscPlugin?systemName=Misc.DataManager

it posts to:

http://localhost/MiscDataManager/Index

as if I had wrote:

@using (Html.BeginForm(
    "Index",
    "MiscDataManager",
    FormMethod.Post,
    new { enctype = "multipart/form-data" })
)



which only shows my form and omits all of the surrounding administration stuff.

Shall I keep
<form method="post" enctype="multipart/form-data" novalidate="novalidate">
or is there a way to have BeginForm set the action to post to self (or to omit it altogether)?

Issue #2 is that I would like to keep the cshtml NOT embedded, so to be able to modify it and see the changes without having to rebuild DLLs and stuff (my localhost setup is quite slow, rebuilding and loading the config page takes a couple of minutes every time, but I'll eventually create another thread about this, to get advice about improving the performance)

I tried setting the cshtml file as "copy if newer" and "content" (in the compile operation).

The result is that the cshtml file gets copied to a "views" subfolder in my plugin's deploy folder and the views router isn't able to pick it up, so I'd like to know which is the correct way to go for this.

Thanks as always for your attention,
bests,
Francesco