Mohan Kurali
Mohan Kurali

Reputation: 383

why use asp-controller and asp-action if it is not compulsory

@model Task3.Models.NewUser

<form action="" method="post">
    <label>first Name </label>
    <input type="text" placeholder="enter name" name="firstName"/>
    <input type="text" placeholder="enter last name" name="lastName"/>
    <button type="submit">Submit</button>
</form>

This code works even without asp-controller and asp-action. Why should I use those then?

Upvotes: 1

Views: 246

Answers (1)

poke
poke

Reputation: 388153

The tag helpers asp-controller and asp-action can be used to automatically generate a target URL but you don’t have to use them. All they do is automatically generate the href attribute for links and action attributes for forms. If you want to fill in thos values manually, there is nothing that’s stopping you from doing that.

However, using the tag helpers has a clear benefit: The actual URL that you have to use depends on various things that affect your application’s routing. So if you use manual values, you have to take that into account. And if your routing changes (for whatever reason), you have to manually update the URLs throughout your templates.

By using the tag helpers, you are attaching the target location to something that is usually rather static: A controller action. So that way, you decouple the template from your routing configuration.

One more note for form actions specifically: If you do not specify a form action, the browser will automatically post to the current URL. So if you have a POST handler on the same route as the form, then you can totally omit the action and depend on that behavior.

Upvotes: 2

Related Questions